批次和承诺之间的差异

时间:2018-05-07 12:53:41

标签: firebase google-cloud-firestore es6-promise

当我想从Cloud Functions中对Cloud Firestore进行多次写作,删除或更新时,我通常会使用promise:

var proms = []
proms.push(sometask)
return Promises.all(proms)

但是我遇到了批次:https://firebase.google.com/docs/firestore/manage-data/transactions#batched-writes

我认为这看起来像这样:

var batch = db.batch();
batch.update(sometask)
return batch.commit();

这两者有什么区别?

1 个答案:

答案 0 :(得分:2)

当您对许多操作执行Promise.all时,这些操作仍会逐个发送到服务器。每个操作都可能单独失败,而其他操作则成功。

使用批量写入(或事务)时,您的操作将通过一个命令发送到服务器。这意味着他们要么全部失败,要么全部成功。