我正在构建一个记录财务交易的应用程序。我想通过一个操作添加类似的事务,因此,我使用一个for循环将事务添加到Cloud Firestore
数据库中。唯一更改的参数是交易日期。
我的代码在for循环中循环,但是在日期更改之前,所有实例都添加到Firestore
中,然后在for循环中添加。
我了解这是由于Cloud Firestore
的异步方面造成的,但是我不知道如何使它工作。
我将用于更改日期的代码放在for循环的不同位置,但是结果保持不变。
let date = transaction.date;
let freqNmbr = document.getElementById('newTransactionFreqNmbr').value;
for (i = 0; i < freqNmbr; i++) {
db.collection(auth.currentUser.uid).doc("db").collection("transactions").add({
amount: transaction.amount,
date: date,
status: transaction.status,
account: transaction.account,
description: transaction.description,
freqNmbr: transaction.freqNmbr,
freqType: transaction.freqType
})
.then(function (docRef) {
console.log("Document written with ID: ", docRef.id);
date = new Date(date);
if (transaction.freqType == "dag") {
date.setDate(date.getDate() + 1);
} else if (transaction.freqType == "week") {
date.setDate(date.getDate() + 7);
} else if (transaction.freqType == "maand") {
date.setMonth(date.getMonth() + 1);
} else {
date.setFullYear(date.getFullYear() + 1);
}
let yy = date.getFullYear();
let mm = '' + (date.getMonth() + 1);
let dd = '' + date.getDate();
if (mm.length < 2) mm = '0' + mm;
if (dd.length < 2) dd = '0' + dd;
date = yy + '-' + mm + '-' + dd;
})
.catch(function (error) {
console.error("Error adding document: ", error);
});
}
答案 0 :(得分:0)