【发布时间】:2019-10-13 08:10:52
【问题描述】:
在浏览官方文档时,我发现 SDK 在失败时会自动重新运行有限次数的事务,但是在批量写入的情况下并没有明确提及。
文档确实提到批处理写入就像事务一样是原子的,但这并不一定意味着它们也会在失败时重新运行。
【问题讨论】:
标签: javascript firebase react-native google-cloud-firestore
在浏览官方文档时,我发现 SDK 在失败时会自动重新运行有限次数的事务,但是在批量写入的情况下并没有明确提及。
文档确实提到批处理写入就像事务一样是原子的,但这并不一定意味着它们也会在失败时重新运行。
【问题讨论】:
标签: javascript firebase react-native google-cloud-firestore
如果失败,则不会重试批量写入。整个事情就是回滚了,要不要重试就得自己想办法了。
重试事务是因为它们明确地尝试根据现有文档的内容进行更改。由于这些文档可能会在客户端和服务器之间的往返行程中发生变化,因此如果发生这种情况,则需要重试以自动处理这种情况。批量写入没有这个问题,因为它们是原子的,但本质上不是真正的事务性。
【讨论】:
let batch=db.batch()。因此,如果此批处理操作失败,是否再次调用该函数是一个好主意,因为每次调用都会实例化一个新的批处理对象。还是有一定的“良好实践”重试在firestore中批量写入?