2016-03-21 65 views
1

因此,我正在开发一个小型Web应用程序,并且我正在使用Firebase作为后端。这是一个小的聊天应用程序,我想一个人的信息存储在以下形式:将数据作为JSON对象存储在Firebase中

{ "John" : {0: "hello",1:"how are you?".2:"what are you doing?" }} 

我在一个叫MY_NAME变量存储人的名字。我的Firebase参考被称为ref。说我设置MY_NAME为,

var my_name = "John"; 

,然后做

ref.set({my_name : {0:"Hello"}}); 

它存储的数据作为

{my_name : {0:"Hello"}} 

,而不是

{"John" : {0:"Hello"}} 

我怎样才能将其存放它使用my_var的赋值?

+0

为什么聊天数据保存为数组?这可能会在稍后导致问题。当存储像这样的聊天数据时,更好的选择可能是push()生成节点名称并将消息存储为每个节点中的key:value对。这样做将使您能够存储消息的来源和时间戳,执行查询和其他详细信息。此外,您在示例(.2)中有一段时间,而不是逗号。 – Jay

回答

3

尝试把括号的属性名称,像这样:

var my_name = 'John'; 

ref.set({ 
    [my_name]: { 0: "Hello" } 
}); 
+0

每天学点新东西:) –

2

创建一个JS对象这样

var obj = {}; 
obj[my_name] = "{ 0: "Hello" }"; 

然后保存这火力

ref.set(obj); 
0

检查{}在集合中。

var car = {type:"Fiat", model:"500", color:"white"}; 

     function writeData() { 
      firebase.database().ref('cars/'+ dateToInsert).set(
       car 
      ); 

从而节省:
类型: “菲亚特”
模式: “500”
颜色: “白色”

 function writeData() { 
      firebase.database().ref('cars/'+ dateToInsert).set({ 
       car 
      }); 

从而节省:

车:
- 型号:“菲亚特”
- 型号:“500”
- 颜色:“白色”

相关问题