javascript - 将文档批量提交到 Google Firestore 数据库、node.js 和 promise 问题
问题描述
我正在尝试遍历一组事务,然后将每个事务添加到批处理中以提交到我的 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++)
推荐阅读
- ionic4 - ionic 4 ion-button中的下载属性是什么意思?
- python - 有条件地替换numpy数组中的列
- google-app-engine - 所有 App Engine 实例于 25.12 重新启动。和 31.12
- python - 使用带有附加参数的 python 运行程序
- node.js - 是否可以在运行 Ubuntu 机器(服务器)上为 vuejs 项目设置开发模式环境
- android - 如何在android中使用默认拨号屏幕?
- c - 如何在C中将可变参数转换为数组
- graphql - 这个 graphql 模式有什么问题?索引键的类型不匹配
- r - pmml (randomForestModel) 在不同的运行中抛出错误..tree[, 2] 中的错误:维数不正确
- javascript - 循环中的 ReactJs/语义 UI 检查复选框