【发布时间】:2020-03-26 09:17:46
【问题描述】:
由于 Firestore 中的事务受到限制,因此有时您会遇到执行多个批量写入或取决于其他网络事件的批量写入时遇到的困难。在这种情况下,如果一次写入成功而另一次写入失败,有没有办法对已完成的批处理执行回滚?
【问题讨论】:
标签: firebase google-cloud-platform google-cloud-firestore
由于 Firestore 中的事务受到限制,因此有时您会遇到执行多个批量写入或取决于其他网络事件的批量写入时遇到的困难。在这种情况下,如果一次写入成功而另一次写入失败,有没有办法对已完成的批处理执行回滚?
【问题讨论】:
标签: firebase google-cloud-platform google-cloud-firestore
正如您在community post 上看到的,如果批处理写入失败,则整个批处理已经回滚,并且在并行批处理运行的情况下,它会发生一种先进先出的情况,其中执行的批处理最后一个是持久性的,如果你想有一些逻辑或持久性验证来防止这种情况,你应该使用事务。
但是批处理和事务具有大致相同的限制,除了批处理是唯一的离线选项,因此可以使用您的代码围绕它构建解决方案。
希望这会有所帮助。
【讨论】:
对于已成功的批量写入(或事务),Firestore 没有回滚选项。如果您需要撤消批量写入,您的应用程序将需要记住在批量中所做的更改并手动还原它们。
【讨论】: