如何通过REST API读取Firebase订购数据?

时间:2013-11-22 16:51:07

标签: firebase

我按时间顺序通过push()编写我的数据,但我需要通过REST API读取它,它将数据作为obj而不是数组返回。这是一个问题,因为JS不支持有序词典。

最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

使用push() 1 2 时,Firebase不会存储数组。相反,它会创建一个唯一的,基于时间的ID,并使用该ID将值存储在对象中。他们看起来像这样:

push ids stored in Firebase

为什么选择这种方法有很多原因,以及为什么在实时数据存储 1 中使用数组是个坏主意。

一个优点是所有现代浏览器都能在每种情况下正确排序对象,不包括对chrome 1 2 3 的高度争议的数字排序。

鉴于这些事实,以及Firebase的推送ID是按字典顺序排序的字符串,REST API将按照推送顺序返回记录,并且它们出现在Forge中,快速curl测试将确认。

唯一可能遇到麻烦的地方就是使用数字ID,这自然会导致Chrome中的一些混乱。当然,通过在每个id上加上“0”或字符串前缀来强制修复这些内容,迫使Chrome按字典顺序对它们进行排序以及 1

var a = {"foo":"bar", "03": "3", "02":"2", "01":"1"};
for(var i in a) { print(i) };

produces following output as expected:
foo
3
2
1