【问题标题】:Sorting Firebase Data Based on Child Values根据子值对 Firebase 数据进行排序
【发布时间】:2020-03-07 12:32:06
【问题描述】:

我正在尝试按每个帖子子项的时间戳对我的 Firebase 查询进行排序。相反,我只是获取存储在数据库中的数据,未排序。我正在使用 firebase npm 包。

数据结构如下:

posts
   -Lsx-tFbXe83gANXP3TD
       -timestamp: 1466171493193
   -Lsx-sWzXe83gANWNM3R
       -timestamp: 1466171493111

这是我使用的 javascript 代码:https://firebase.google.com/docs/database/web/lists-of-data

firebase.database()
      .ref("posts")
      .orderByChild("timestamp")
      .on("value", function(snapshot) {
        _this.setState({
          posts: Object.values(snapshot.val()),
          loading: false
      });
});

提前致谢!

【问题讨论】:

    标签: javascript firebase firebase-realtime-database


    【解决方案1】:

    您返回的snapshot 包含有关与您的查询匹配的子节点的三条信息:

    1. 关键
    2. 价值
    3. 它们之间的相对位置

    一旦您调用snapshot.val(),所有有关排序的信息都会丢失,因为 JSON 对象只能包含键和值。

    为了保持顺序,您需要将信息转换为数组:

    var values = [];
    snapshot.forEach(function(child) {
      values.push(child.val());
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-02
      • 2016-12-31
      • 1970-01-01
      • 2015-02-02
      • 1970-01-01
      • 2014-12-07
      • 2015-01-05
      • 1970-01-01
      相关资源
      最近更新 更多