当我想从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();
这两者有什么区别?
答案 0 :(得分:2)
当您对许多操作执行Promise.all
时,这些操作仍会逐个发送到服务器。每个操作都可能单独失败,而其他操作则成功。
使用批量写入(或事务)时,您的操作将通过一个命令发送到服务器。这意味着他们要么全部失败,要么全部成功。