我正在尝试通过Java for for循环遍历Cloud Firestore中的一堆文档。问题在于数据调用中的延迟意味着要重复检查一个元素。在该文档上调用代码之前,如何等待文档被检索?
for (i = 0; i < following.length; i++) {
db.collection('users').doc(following[i]).get().then(function (doc) {
insert += "<p class='follower'>" + doc.data().firstName + " " + doc.data().lastName + "</p>";
})
}
答案 0 :(得分:2)
Firestore文档的get()
方法是异步的,并返回Promise。您需要等待这些承诺解决,然后才能遍历值。这是一个这样做的例子:
const usersReference = db.collection("users");
const promises = following.map(fid => usersReference.doc(fid).get());
return Promise.all(promises).then(docs => {
let insert = "";
docs.forEach(doc => {
insert += `<p class='follower'>${doc.data().firstName} ${doc.data().lastName}</p>`;
});
console.log(insert);
});