【问题标题】:Firebase admin sdk: query realtime database (timestamp)Firebase admin sdk:查询实时数据库(时间戳)
【发布时间】:2020-04-12 00:04:50
【问题描述】:

我正在尝试查询超过 8 小时的数据。

我的数据是这样存储的:

{
  "users": {
    "user 1": {
      "beginTime": 1576754815639,
      //more data
    },
    "user 2": { ... },
    "user 3": { ... }
  }
}

我正在使用 firebase admin sdk(用于云功能) 我在他们的网站上找到了这个例子。

  var ref = db.ref("dinosaurs");
  ref.orderByChild("height").startAt(3).on("child_added", function(snapshot) {
    console.log(snapshot.key);
  });

但我不知道是否需要“child_added”或如何实现 startAt 与时间。

如何查询 8(或更多)小时前的时间戳?

提前感谢您的帮助和努力!

【问题讨论】:

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


    【解决方案1】:

    您可以执行以下操作:

      var ref = db.ref("users");
      ref.orderByChild("beginTime").startAt(1576754815639).on("value", function(snapshot) {
        console.log(snapshot.key);
        console.log(snapshot.val());
      });
    

    添加对节点users 的引用,然后使用orderByChild 进行查询并将value 事件附加到查询以检索数据

    查看文档:

    https://firebase.google.com/docs/database/admin/retrieve-data

    【讨论】:

    • 谢谢!如果我是对的,时间现在是硬编码的吗?有没有可能让它“改变”。我想使用服务器时间戳并查询超过 8 小时前的所有数据,然后是当前时间戳。
    • 因此,如果我正确阅读了文档,我需要从 [-infinity 到 ServerValue.TIMESTAMP 减去 8 小时] 的“数据”。所以我应该使用 endAt(serverValue.Timestamp 减去 8 小时)?你如何在代码中编写 ServerValue.TIMESTAMP 减去 8 小时?
    猜你喜欢
    • 2019-05-16
    • 2021-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多