由于Firestore中的交易受到限制,因此有时您会被困于执行多个批处理写入,或取决于其他网络事件的批处理写入。在这种情况下,如果一次写入成功而另一次写入失败,是否有任何方法可以对已完成的批次执行回滚?
答案 0 :(得分:1)
正如您在此community post上所看到的,如果批处理写入失败,则整个批处理都已经回滚,并且如果并行批处理运行,则会发生一种先进先出的情况,即该批处理最后执行的是持久性的,如果您想进行一些逻辑或持久性验证来防止这种情况,则应该使用事务。
但是,批处理和事务具有大致相同的限制,除了批处理是唯一的脱机选项之外,因此可以用您的代码围绕此构建解决方案。
希望这会有所帮助。
答案 1 :(得分:1)
Firestore没有针对已成功批量写入(或事务)的回滚选项。如果您需要撤消批处理写入,则您的应用程序将需要记住批处理中所做的更改,并手动还原它们。