Firebase实时数据库在放入数据时自动添加一个额外的null

Firebase实时数据库在放入数据时自动添加一个额外的null,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,当我尝试将带有整数的数据作为实时数据库的键时,如下所示: curl -X PUT -d '{"1": 1, "2": 2, "3": 3, "4": 4}' ${firebase}'/test.json?print=pretty' 数据库会自动添加一个null! 但是,如果我使用0作为开始的数据: curl -X PUT -d '{"0":0,"1": 1, "2": 2, "3": 3, "4": 4}' ${firebase}'/test.json?print=pretty' 不

当我尝试将带有整数的数据作为实时数据库的键时,如下所示:

curl -X PUT -d '{"1": 1, "2": 2, "3": 3, "4": 4}'  ${firebase}'/test.json?print=pretty'
数据库会自动添加一个
null

但是,如果我使用0作为开始的数据:

curl -X PUT -d '{"0":0,"1": 1, "2": 2, "3": 3, "4": 4}'  ${firebase}'/test.json?print=pretty'
不再有额外的
null
。 为什么会这样? 我想要的是不再有额外的
null
,没有“0”作为键


希望您的答案是:-)。

这是由Firebase的阵列强制造成的。当它看到一个节点的子键大部分是序列号时,它会假定您正在尝试存储一个数组。它通过为缺少的元素添加占位符来确保数据实际上是一个数组

为了防止Firebase这样做,请确保键始终是无法转换为数字的字符串,例如,通过在它们前面加前缀:
curl-X PUT-d'{“key_1”:1,“key_2”:2,“key_3”:3,“key_4”:4}'

另见: