假设有多个用户正在对同一文档执行写操作。
我的firestore安全规则只会allow write if resource.data.status == true
。
我的问题是每个用户都会尝试用大量其他字段编写文档,并将状态设置为false,从而阻止其他写入。
规则评估和写入过程是否原子化,以至于没有竞争条件,多个用户写入安全规则会看到resource.data.status == true
?
答案 0 :(得分:2)
每个set()
,update()
,delete()
或runTransaction()
都作为原子操作执行。它要么完全成功要么完全失败,没有客户会看到这种操作的部分结果。
如果您希望多个此类操作一起成功或失败,您可以将它们组合在batched write中。批处理中的所有操作都成功或者所有操作都失败。