我正在尝试遍历一个事务数组,然后将每个事务添加到批处理中以提交到我的 firestore 数据库。
但是,我的函数在批处理请求完成并将事务写入我的数据库之前完成。
我相信我需要使用承诺来等待提交我的批处理请求,但我是 node.js 和承诺的新手。
想知道是否有人能够提供帮助并指出在我的代码中在哪里以及如何使用承诺以确保批处理请求得到满足。
function saveTransactions(transactions)
{
var batch = db.batch();
var i;
for (i = 0; i < transactions.length - 1; i++)
{
var transaction = transactions[i]
var data = {
description: transaction.description,
amount: transaction.amount
};
var docRef = db.collection('user_transactions').doc();
batch.set(docRef, data);
}
return batch.commit().then(function () {
return true
});
}
以下是 Firebase 的 firestore 和批处理请求文档的链接,以提供一些上下文 - https://firebase.google.com/docs/firestore/manage-data/transactions
您的for
循环看起来不对。 它不是遍历数组:
for (i = 0; i < 1; i++)
这只会执行一次这个循环的主体。 如果您尝试遍历事务的所有内容,则可能需要以下内容:
for (i = 0; i < transactions.length; i++)