firebase - Firestore 事务是否被视为串行队列?
问题描述
如果 Firestore 事务中的基础数据在事务期间(从事务外部)发生更改,则会重试该事务以确保当前数据。但是,如果该基础数据只能在事务中更改,那么对该数据的更改是否有效地序列化了?换句话说,如果一个文档只能通过一个事务来创建和编辑,那么当一个事务正在执行时,竞争事务(在同一个文档上)是否会等待?是先进先出还是同一数据上的事务可以相互中断?
解决方案
事务未序列化 - 这不会以 Firestore 要求的方式扩展。从 Web 和移动客户端的角度来看,事务使用“乐观锁定”来进行更改。这种锁定方式实际上并不强制更改文档,它只是表明由于另一个更改,写入可能无法按照预期的方式完成。这就是重试事务的原因(如文档中所述) - 如果在持有乐观锁时文档发生更改,则事务将有另一个机会使用事务中涉及的所有文档的新内容进行更改。
另请参阅:Cloud Firestore 文档锁定
推荐阅读
- javascript - 我刚刚在导航栏中添加了汉堡包按钮,但它现在不起作用?
- mysql - 数据库上的 i/o 如何与查询类型相关
- linux - cut -f 多个参数
- c# - 如何每 n 分钟/小时/天使用 Hangfire 运行后台作业
- listview - 秒表时间跨度的列表视图 - 如何在 UI 中继续计时器
- typescript - 解决 Vue 3 可组合项中的循环依赖关系
- mongodb - 如何在 MongoDB 上查询 NOT LIKE 数组中的任何字符串?
- c# - 如何在 MaterialEditorRenderer 编辑器中启用复制/粘贴/全选菜单
- git - 在 2 个不同的存储库中管理 Azure DEVOPS Git DEV 和发布分支是个好主意吗?
- json - JQ 从编码字段中替换“\n”