24

firebase 示例数据库

我创建了一个简单的 firebase 数据集来测试一些 REST 调用(见下图)。我想知道为什么,当我查询数据库中的集合时,firebase 总是先返回一个空行,然后才是实际的行。这是我导出数据时得到的结果。注意系统和系统类型下的空行:

{
  "systems" : [ null, {
    "system_type_id" : 2,
    "name" : "Commodore 128",
    "id" : 1
  }, {
    "system_type_id" : 1,
    "name" : "Difference Engine",
    "id" : 2
  }, {
    "system_type_id" : 2,
    "name" : "Osborne",
    "id" : 3
  } ],
  "system_types" : [ null, {
    "name" : "Babbage",
    "id" : 1
  }, {
    "name" : "Von Neumann",
    "id" : 2
  } ]
}
4

2 回答 2

31

Firebase 会自动检测对象何时“看起来像”数组,并相应地进行转换。由于 'systems' 和 'system_types' 有 1、2 和 3 的孩子,Firebase 会在输出时自动将它们转换为数组。但是,由于您没有为索引 0 指定值,因此 Firebase 只是插入了一个空元素。

我建议要么使用从零开始的 ID,要么使用非数字的东西开始你的 id,这样我们就知道它不是一个数组(即:item1、item2、item3)。

您也可以忽略 null 元素——在 Firebase 中,null 和不存在是一回事。

于 2013-03-20T21:30:42.463 回答
0

我为上述问题找到了一个hack。只需对所有数字键使用非数字(虚拟)键,当您导出时,firebase 不会将数字键转换为 null。请检查屏幕截图以获得更好的理解。我已经将“d”与其他数字键一起使用,即使我没有使用键“d”。

在此处输入图像描述

于 2017-10-13T13:16:12.790 回答