Firestore WriteBatch - 有什么意义?

Nic*_*ick 0 firebase google-cloud-firestore

使用 Firestore 一段时间后,我习惯了将较大的数据库操作打包成批次的习惯。有时这可能有点乏味,结果是需要大量代码才能正确完成并可扩展大于最大 500 个单位(多个批次)的集合。在阅读有关如何删除集合的文档后,我调整了此行为。

这可能是一个愚蠢的问题,但我现在想知道:如果我想从后端环境中删除 5000 个文档,并且我不需要原子地发生这种情况,为什么我不简单地在一个简单的循环中删除这些文档喜欢:

for (DocumentSnapshot randomDoc : randomQuery.getDocuments()) {
   randomDoc.getReference().delete();
}

Run Code Online (Sandbox Code Playgroud)

除了原子性之外,批处理操作还有哪些优点?

Ale*_*amo 5

为什么我不简单地在一个简单的循环中删除这些文档

这是因为您永远不会知道您执行的某些删除操作是否实际上失败。这是批量写入的主要好处:

在一组原子操作中,要么所有操作都成功,要么都不应用。