Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase功能:确保触发事件顺序_Firebase_Firebase Realtime Database_Google Cloud Functions - Fatal编程技术网

Firebase功能:确保触发事件顺序

Firebase功能:确保触发事件顺序,firebase,firebase-realtime-database,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Functions,我们使用firebase函数向用户发送推送通知,并希望它们按顺序发送 有没有办法确保onWrite事件的触发/处理顺序与插入元素的顺序相同?或者它们同时运行,而您无法以任何方式确保这一点?如果不可能,您会在这些情况下使用哪种解决方案 示例:如果我们在此订单中插入/foo:item 1,item 2,item 3,我们希望 onWrite事件总是按照相同的顺序激发:item1、item2、item3 非常感谢你的帮助 回答 嗯。。。。我们做了一些测试,事实上,正如我们想象的那样,事件并没有按顺序触

我们使用firebase函数向用户发送推送通知,并希望它们按顺序发送

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

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

非常感谢你的帮助

回答

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

请说明以下内容:

在开发应用程序时,请记住,云Firestore触发器目前处于测试阶段,可能会导致意外行为

一些已知的限制包括:

  • 更改云Firestore数据后,可能需要10秒钟才能触发功能
  • 与所有后台函数一样,不保证事件顺序。此外,一个事件可能会导致多个云函数调用,因此为了获得最高质量,请确保将函数编写为幂等函数。
换句话说,单靠Firestore触发器不足以完成任务


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

对于云函数处理事件的顺序没有任何保证。另外请注意。我注意到您也在firebase talk上发布了此消息。让我们把它们联系起来: