如何等待Firestore数据库请求完成?

时间:2018-10-01 17:37:58

标签: javascript firebase google-cloud-firestore

我正在尝试通过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>";
            })
        }

1 个答案:

答案 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);
});