Javascript nodejsfirebase等待请求

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

我如何等待所有Firebase请求得到满足

我有一个用户电话阵列-
阵列

步骤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'});
}