【问题标题】:How can I read Firebase ordered data via the REST API?如何通过 REST API 读取 Firebase 有序数据?
【发布时间】:2013-11-22 16:51:07
【问题描述】:

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

解决这个问题的最佳方法是什么?

【问题讨论】:

    标签: firebase


    【解决方案1】:

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

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

    一个好处是所有现代浏览器在每种情况下都正确排序对象,除了 chrome 123 的高度争议的数字排序。

    鉴于这些事实,以及 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-21
      • 2015-05-16
      • 1970-01-01
      • 2019-03-08
      • 2017-03-24
      • 2023-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多