You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Firestore事务读取集合后,新增未读取文档会触发重启吗?

Firestore事务重启问题解答
  • 核心结论:这个事务不会自动重启
  • 具体原因:Firestore的事务重试机制只针对事务执行过程中读取过的文档。你的事务一开始读取的是已存在的t1、t2、t3文档,并没有读取t6(当时t6还不存在)。当其他用户在事务执行期间创建t6时,这个操作不属于事务读取过的文档的变更,Firestore不会判定为事务冲突,因此不会触发重启。
  • 注意事项:这种逻辑存在竞态隐患——事务检查完t6不存在后,还没完成更新操作时,其他用户可能已创建t6,最终会导致操作失败(比如抛出“文档已存在”的错误)。正确的做法是在事务中显式读取t6文档(哪怕它当前不存在),这样当其他用户创建t6时,Firestore会检测到这个文档的状态变更(事务读取过它的“不存在”状态),就会自动重启事务,重新执行检查逻辑。

内容的提问来源于stack exchange,提问作者wangsun6

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 09:05:07