Firebase.set()添加额外的节点

时间:2013-01-30 20:40:34

标签: javascript firebase

使用Firebase的根目录运行以下查询时,会添加额外的节点。

查询:

fire.set({
"users":[
    {
        "0":[
            {
                "email":"foobar@gmail.com",
                "snake":[
                    {
                        "highScore":"15"
                    }
                ]
            }
        ]
    }
]
});

结果

Malformed entry.

在json文件中格式化数据并使用Firebase Web界面直接导入数据时,我得到相同的结果。我是否遗漏了文档中的内容?

1 个答案:

答案 0 :(得分:3)

这里的问题是,无论何时使用数组语法,即[...],你都在Firebase中创建一个“数组”,我们只需用数字键创建一个对象(即0,1, 2,......)。

所以,如果你这样做:

ref.set({ a: 5 });

结果对象将是:

{ a: 5 }

但如果你改为:

ref.set([{a: 5}, {b: 6}]);

你会得到:

{ 
  '0': { a: 5 }, 
  '1': { b: 6 } 
}

因此,如果您只是从您正在设置的数据中删除方括号,例如:

fire.set({
  "users": {
    "0": {
      "email":"foobar@gmail.com",
      "snake": {
        "highScore":"15"
      }
    }
  }
});

网络界面中的结果数据应与您的数据完全匹配。