我试图将其添加到Firestore文档中已经存在的号码中。但是我要走的是行不通的。这是我所拥有的:
for (let i = 0; i < transaction.debitEntries.length; i++) {
this.transactionService.accountsCollection
.doc(transaction.debitEntries[i].accountId)
.update({ debitAmount: debitAmount + transaction.debitEntries[i].amount });
}
我要在其中将交易金额添加到数据库中已保存的debitAmount的位置。我想念什么?
答案 0 :(得分:0)
运行事务。您必须执行read
操作。从您提供的代码来看,没有。
示例
someFunction = async (debitAmount) => {
const reference =
firebase.firestore().collection("someCollection").doc("someDoc");
reference.firestore.runTransaction(async transaction => {
const doc = await transaction.get(reference);
if (!doc.exists) { console.error("Document does not exist"); }
const currentDebitAmount = doc.data().debitAmount;
transaction.update(reference, { debitAmount: debitAmount + currentDebitAmount });
}).catch(error => console.error(error));
}
有关运行事务的更多信息,请阅读以下官方文档。
https://firebase.google.com/docs/firestore/manage-data/transactions