【问题标题】:How to sort Datasnapshot using OrderByChild() from cloud function如何使用云函数中的 OrderByChild() 对 Datasnapshot 进行排序
【发布时间】:2020-04-02 10:52:31
【问题描述】:

我正在使用云函数并尝试获取一个 DataSnapshot,其中 server 节点的子节点按 lastTimeUsed 内部子节点的值升序排序。我正在使用 orderByChild,但我得到的 dataSnapshot 没有按我的需要排序。

我看了资料here

这里是部分云功能

  var serversSorted = serversRef.orderByChild('{serverId}/lastTimeUsed').on("value", function(snapshot) {

    snapshot.forEach(function(data) {
      console.log(" Server is " + data.val().lastTimeUsed);
    });
  });

这些是来自谷歌云的日志

【问题讨论】:

  • 优先级在现代 Firebase 实时数据库使用中不再是一个有用的概念,只是为了向后兼容而保留。除此之外,我不清楚您要做什么,以及(重要的是)您在实施它时遇到了什么问题。我建议在您的问题中包含minimal, complete/standalone code that reproduces where you stuck
  • 您好,我刚刚编辑了我的问题,非常感谢您的帮助。谢谢

标签: node.js firebase firebase-realtime-database google-cloud-functions


【解决方案1】:

您使用的 orderByChild('{serverId}/lastTimeUsed') 语法不是 Firebase 识别的。因此,您实际上是在对不存在的属性进行排序,这说明结果按其键的顺序排列。

通过lastTimeUsed属性的值来检索servers的所有子节点的属性方式是:

firebase.database.ref("servers").orderByChild('lastTimeUsed')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    • 1970-01-01
    • 2016-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多