gpt4 book ai didi

javascript - 如何在循环中使用 for 并从 firebase 查询数据

转载 作者:行者123 更新时间:2023-11-30 14:00:30 25 4
gpt4 key购买 nike

我有一个查询可以获取我的 firebase 数据库中用户的所有 key 。这些键保存在一个数组中。然后我想遍历数组并在循环查询中查询用户名。问题是它在加载名字时停止 - 即使数组中有 1000 个键,循环也不会查询?

var i;

for (i = 0; i < emailArray.length; i++) {
userIDgotten = emailArray[i];

console.log(userIDgotten);

return firebase.database().ref('/users/' + userIDgotten).once('value').then(function(snapshotUser) {
const name = snapshotUser.val().name;

console.log("NAME: " + name);

allTicketEmailsFromUsers = allTicketEmailsFromUsers + ", " + name;

console.log(allTicketEmailsFromUsers);
});
}

我没有收到任何错误,但在检索到名字后循环就停止了。

最佳答案

once()方法是异步的并返回一个 Promise。

因为你想用once()并行执行多个查询,你需要使用Promise.all()如下:

var promises = [];
for (var i = 0; i < emailArray.length; i++) {
userIDgotten = emailArray[i];

console.log(userIDgotten);

promises.push(firebase.database().ref('/users/' + userIDgotten).once('value'));

}

Promise.all(promises)
.then(function(results) {
var allTicketEmailsFromUsers = "";
results.forEach(function(snapshotUser) {
const name = snapshotUser.val().name;
console.log("NAME: " + name);
allTicketEmailsFromUsers = allTicketEmailsFromUsers + ", " + name;
});
console.log(allTicketEmailsFromUsers);
}

关于javascript - 如何在循环中使用 for 并从 firebase 查询数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56393082/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com