Firebase云功能:如何处理由另一个云功能引起的多个触发器?

时间:2020-04-20 10:53:02

标签: firebase google-cloud-firestore google-cloud-functions

我正在Firebase上编写一个Web应用程序,并具有以下Firestore模式和数据结构:

printf '%s\n' '/^bbb bbb bbb$/r file1.txt' w | ed -s file2.txt

我正在考虑在云功能下面编写代码:

-Cloud函数A:收听“用户”集合中一个文档的更新,并使用先前的userinfo更新“帖子”集合中的每个文档。

-Cloud函数B:允许更新“帖子”集合中的一个文档,并更新包含先前postinfo的“保存”集合中的每个文档。

这里的复杂之处在于,云函数A一旦被触发,将更新“帖子”集合中的多个文档,每个文档都将再次被触发。如果用户写了100个帖子,则一次可以有100个触发器。

要处理这种情况,对我来说,以下自然是下一步?问,因为答案取决于Firebase Cloud Functions如何处理这种情况,但目前我对此还不了解:

a)将函数B编写为事务,因为Firebase Cloud Function将通过按一定顺序对每个触发器进行排队来处理这种情况。

b)编写函数B仍可监听更新并将其反映到“保存的”集合中,但不作为事务处理以避免由数据库锁定引起的大量积压。

c)重新考虑数据库结构和/或云功能逻辑,从一开始就避免这种情况。

答案可能是对还是错(或者在这种情况下有答案吗?),但只是想在实际编写代码之前获得一些指导。有什么建议吗?在此先多谢!

0 个答案:

没有答案