Javascript nodejsfirebase等待请求
我如何等待所有Firebase请求得到满足 我有一个用户电话阵列-Javascript nodejsfirebase等待请求,javascript,node.js,firebase,google-cloud-firestore,async-await,Javascript,Node.js,Firebase,Google Cloud Firestore,Async Await,我如何等待所有Firebase请求得到满足 我有一个用户电话阵列-阵列 步骤1:创建所有用户电话的数组并生成唯一的票证标识符。(randomStringIdent()-行生成函数) 步骤2:我将AllArrayPhone分解为10个(因为Firebase不支持超过10个条件)。我请求Firebase并创建数据库中的用户数组 var regusers = []; const splitArray = AllArrayPhone.chunk(10); for (const items of spl
阵列
步骤1:创建所有用户电话的数组并生成唯一的票证标识符。(randomStringIdent()
-行生成函数)
步骤2:我将AllArrayPhone
分解为10个(因为Firebase不支持超过10个条件)。我请求Firebase并创建数据库中的用户数组
var regusers = [];
const splitArray = AllArrayPhone.chunk(10);
for (const items of splitArray) {
let usersRef = db.collection('users');
let users = await usersRef.where('userphone', 'in', items);
let userdocs = users.get();
for (SingDoc of userdocs.docs) {
regusers.push(SingDoc._fieldsProto.userphone.stringValue)
}
console.log("data pushed")
}
步骤3:将步骤2中生成的数组写入Firebase
admin.firestore().doc(path).update({Users: regusers,Status: 1})
步骤4:记录步骤1中生成的票证ID
for (var key in arrayTikets) {
db.collection('events').doc(id).collection("tickets").doc(key).set({ticket:arrayTikets[key]});
}
步骤5:在通知日志中做记录
for (item of regusers) {
let DocRef = db.collection('notifications').doc(item);
DocRef.update({notif.doc: 'NEW'});
}
如何始终如一地执行所有这些循环?是否仅在上一步之后才开始执行下一步 您是否尝试使用承诺来控制此流量?这个lib在@rpereira15中很有用-大概至少有一部分是使用承诺的,因为OP使用的是
await
,它只在async
函数中有效(创建承诺),并且只在承诺中使用。Sergo,你能澄清你的问题吗?您曾问“我如何始终如一地执行所有这些循环?我是否仅在上一步之后才开始执行下一步?”否则您将如何执行?这些步骤中的许多都使用了前面步骤的结果,因此您不能重叠它们…?您是否尝试使用承诺来控制此流程?这个lib在@rpereira15中很有用-大概至少有一部分是使用承诺的,因为OP使用的是await
,它只在async
函数中有效(创建承诺),并且只在承诺中使用。Sergo,你能澄清你的问题吗?您曾问“我如何始终如一地执行所有这些循环?我是否仅在上一步之后才开始执行下一步?”否则您将如何执行?这些步骤中的许多都使用了前面步骤的结果,因此您不能将它们重叠。。。?
for (item of regusers) {
let DocRef = db.collection('notifications').doc(item);
DocRef.update({notif.doc: 'NEW'});
}