假设我有两个顶级集合,users
和companies
。 companies
集合包含一个名为employees
的Users子集合。确保users
和companies/employees
路径中的用户记录同步的最简单方法是什么?使用批处理操作或触发功能是否更常见?
答案 0 :(得分:2)
如果文档写操作直接来自客户端应用程序,则可以使用security rules来确保所有文档在批写操作中都具有相同的值。如果正确编写规则,则假定您具有定义良好的文档结构,它将迫使客户端在所有必需的位置进行适当的批处理写入。
您可以在此other question中看到此技术的类似示例,该示例确保客户机每次创建和删除时都增加和减少文档计数器。您的规则显然会更复杂。
由于安全规则仅适用于客户端代码,因此后端代码没有类似的技术。如果您要在后端编写代码,则只需确保用于批写入的代码都是正确的。
如果您能够进行批处理写入,我认为无需触发Cloud Function,因为该批处理将自动立即生效,而该函数将具有一定的延迟,并且可能会导致竞争状况,因为您没有确定的执行顺序。