firestore安全规则和写入原子?

时间:2017-11-20 14:48:08

标签: firebase google-cloud-firestore

假设有多个用户正在对同一文档执行写操作。

我的firestore安全规则只会allow write if resource.data.status == true

我的问题是每个用户都会尝试用大量其他字段编写文档,并将状态设置为false,从而阻止其他写入。

规则评估和写入过程是否原子化,以至于没有竞争条件,多个用户写入安全规则会看到resource.data.status == true

1 个答案:

答案 0 :(得分:2)

每个set()update()delete()runTransaction()都作为原子操作执行。它要么完全成功要么完全失败,没有客户会看到这种操作的部分结果。

如果您希望多个此类操作一起成功或失败,您可以将它们组合在batched write中。批处理中的所有操作都成功或者所有操作都失败。