在Firestore中跨多个集合同步文档的最简单方法?

时间:2020-02-20 19:53:15

标签: google-cloud-platform google-cloud-firestore nosql

假设我有两个顶级集合,userscompaniescompanies集合包含一个名为employees的Users子集合。确保userscompanies/employees路径中的用户记录同步的最简单方法是什么?使用批处理操作或触发功能是否更常见?

1 个答案:

答案 0 :(得分:2)

如果文档写操作直接来自客户端应用程序,则可以使用security rules来确保所有文档在批写操作中都具有相同的值。如果正确编写规则,则假定您具有定义良好的文档结构,它将迫使客户端在所有必需的位置进行适当的批处理写入。

您可以在此other question中看到此技术的类似示例,该示例确保客户机每次创建和删除时都增加和减少文档计数器。您的规则显然会更复杂。

由于安全规则仅适用于客户端代码,因此后端代码没有类似的技术。如果您要在后端编写代码,则只需确保用于批写入的代码都是正确的。

如果您能够进行批处理写入,我认为无需触发Cloud Function,因为该批处理将自动立即生效,而该函数将具有一定的延迟,并且可能会导致竞争状况,因为您没有确定的执行顺序。