将值添加到Firestore文档中的整数

时间:2018-11-06 17:10:20

标签: angular firebase google-cloud-firestore

我试图将其添加到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的位置。我想念什么?

1 个答案:

答案 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