Как я могу дождаться завершения запроса к базе данных Firestore? - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь циклически извлекать кучу документов из Cloud Firestore в цикле for с Javascript.Проблема в том, что задержка в вызове данных означает, что один элемент неоднократно проверяется.Как можно дождаться получения документа, прежде чем вызывать код для этого документа?

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 голосов
/ 01 октября 2018

Метод get() для документов Firestore является асинхронным и возвращает Обещание.Вам нужно дождаться разрешения этих обещаний, прежде чем вы сможете перебирать значения.Вот пример, который делает это:

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);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...