【问题标题】:Cloud Functions for Firebase: retrieve the date of creation of a child from the databaseCloud Functions for Firebase:从数据库中检索孩子的创建日期
【发布时间】:2017-03-28 21:24:47
【问题描述】:

我正在尝试创建一个函数,该函数从某个节点运行所有子节点,以对 x 天前创建的节点执行某些操作。我已经在我的服务器上创建了一个 cron 来每天调用一次该函数。我的问题是我没有找到如何从一个节点迭代所有子节点并知道它们的创建日期。是否有执行此操作的功能,或者我必须在创建日期中添加一个字段?

【问题讨论】:

  • 您需要构建一个查询来定义您感兴趣的节点。您可能需要阅读文档并查看 Firebase 实时数据库的示例代码以了解其工作原理。 firebase.google.com/docs/database
  • @DougStevenson 是的,我已经这样做了,但我不知道他们的创作日期
  • 当父节点已知且所有子节点都将被迭代时,不需要查询。
  • @Jay,我知道父节点,我在我的函数中做了一个 foreach
  • 如果您知道父节点,那么您可以直接访问具有要迭代的子节点的节点。查询往往会占用更多资源,因此如果您可以使用观察事件而不是查询,则效率会更高。您可以使用 .child 添加事件,该事件将自动迭代节点中的所有子节点,并一次将它们呈现给您可以从每个子节点捕获所需数据的位置,例如我的答案中显示的时间戳。查看 documentation 监听子事件

标签: firebase google-cloud-functions


【解决方案1】:

为每个节点添加一个时间戳(创建日期)子节点。

parent_node
    node_0
      timestamp: "20170328"
    node_1
      timestamp: "20170329"
    node_2
      timestamp: "20170330"

然后使用 .childAdded 事件遍历 parent_node 的所有子节点,或者如果节点数量较少,则使用 .value 加载所有子节点并在代码中迭代。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-15
    • 2018-01-02
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多