我们正在使用firebase功能向用户发送推送通知,我们希望它们按顺序发送。
有没有办法确保按照插入元素的顺序触发/处理onWrite事件?或者他们同时运行,你无法以任何方式确保?如果不可能,你会使用哪种解决方案?
示例:我们希望如果我们按此顺序插入/ foo:第1项,第2项,第3项 onWrite事件始终以相同的顺序触发:item1,item2,item3
非常感谢你的帮助!
ANSWER
嗯....我们做了一些测试,事实上,正如我们想象的那样,事件不是按顺序触发的。已发布的消息包含1,2,3,4,5 ......正如您在下图所示,它们不会按顺序处理。
答案 0 :(得分:0)
Firebase docs声明以下内容:
在开发应用程序时,请记住,Cloud Firestore触发器当前处于测试阶段,这可能会导致意外行为。
一些已知的限制包括:
- 更改Cloud Firestore数据后最多可能需要10秒钟才能触发功能。
- 与所有后台功能一样,不能保证事件顺序。此外,单个事件可能会导致多次调用Cloud Functions,因此,为确保最高质量,请确保您编写的函数是幂等的。
换句话说,仅Firestore触发器不足以完成任务。
一种选择是改为在文档上保留时间戳。然后,当相关触发器发生时,您可以对所有需要发送推送通知的文档进行排序。