【问题标题】:Firebase functions: ensure triggered events orderFirebase 功能:确保触发事件的顺序
【发布时间】:2018-08-21 14:02:40
【问题描述】:

我们正在使用 firebase 功能向我们的用户发送推送通知,并且我们希望它们按顺序发送。

有什么方法可以确保 onWrite 事件的触发/处理顺序与插入元素的顺序相同?或者它们同时运行而您无法以任何方式确保这一点?如果不可能,您对这些情况使用哪种解决方案?

示例:我们希望这样,如果我们在 /foo 中按此顺序插入:item 1, item 2, item 3 onWrite 事件总是以相同的顺序触发:item1、item2、item3

非常感谢您的帮助!

回答

嗯....我们已经做了一些测试,事实上,正如我们想象的那样,事件并没有按顺序触发。使用 1、2、3、4、5 ... 发布的消息,如下图所示,它们没有按顺序处理。

【问题讨论】:

标签: firebase firebase-realtime-database google-cloud-functions


【解决方案1】:

Firebase docs 声明如下:

在开发您的应用程序时,请注意 Cloud Firestore 触发器目前处于测试阶段,可能会导致意外行为。

一些已知的限制包括:

  • 更改 Cloud Firestore 数据后,最多可能需要 10 秒才能触发函数。
  • 与所有后台函数一样,不保证事件顺序。此外,单个事件可能会导致多个 Cloud Functions 调用,因此为了获得最高质量,请确保您的函数被编写为幂等的。

换句话说,仅 Firestore 触发器不足以完成任务。

一种选择是在您的文档上保留时间戳。那么当相关触发发生时,就可以对所有需要推送通知的文档进行排序了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    • 2018-10-01
    • 2019-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多