【发布时间】:2018-10-25 23:45:27
【问题描述】:
我有一个包含整数数组字段的文档,该文档每周 7 天通过onCreate() 触发器每天创建一次。我需要计算数组中每个项目的出现次数。在其他应用程序中,我使用get() 然后set()(或update())。我将在数组中运行一个 for 循环,并将所有的 Promise 添加到 Promise 数组中,最后:Promise.all{promisesArray}。
刚刚发现有关交易的信息,它适用于我非常基本的 javascript。
我的问题是我应该使用哪一个,在我的情况下使用交易有什么好处(如果有的话)?该文档是由管理员而不是最终用户创建的,并不是说它将由数百万用户创建。
以下是我用来计算出现次数的代码:
// Ref.get() then Ref.update()
promisesArray.push(docRef.get()
.then(doc => {
return docRef.update('count', doc.data().count + 1);
})).catch(error => {
console.log("Error" + error);
});
// Using a Transaction
promisesArray.push(firestore.runTransaction(transaction => {
return transaction.get(docRef)
.then(doc => {
return transaction.update(docRef, {
count: doc.data().count + 1
});
});
}).catch(error => {
console.log("Error" + error);
}));
【问题讨论】:
标签: node.js firebase google-cloud-firestore google-cloud-functions