我创建了一个简单的firebase数据集来测试一些REST调用(参见下图)。我想知道为什么,当我查询数据库中的集合时,firebase总是首先返回一个空行然后返回实际的行。这是我导出数据时得到的结果。注意系统和system_types下的空行:
{
"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
} ]
}
答案 0 :(得分:24)
Firebase会自动检测对象“看起来像”数组的时间,并相应地对其进行转换。由于'systems'和'system_types'具有1,2和3的子节点,Firebase会在输出时自动将这些子节点转换为数组。但是,由于您没有为索引0指定值,因此Firebase只是插入一个空元素。
我建议使用从零开始的ID,或者用非数字的东西开始你的id,所以我们知道它不是数组(即:item1,item2,item3)。
您也可以忽略null元素 - 在Firebase中null和不存在是相同的。
答案 1 :(得分:0)