как сломать querySnapshot на Firestore? - PullRequest
0 голосов
/ 17 февраля 2020

Мне нужно разбить querysnapshot l oop. Возможно ли это?

Я пытался использовать для l oop. но появляется следующая ошибка:

Как исправить эту ошибку или Есть ли способ сломать снимок l oop?

код

  return query.get()
    .then((snapshot) => {
      for(const doc of snapshot) {
        let data = doc.data()
        if (data.age == 16) {
            break;
        }
  }

ошибка

Тип 'QuerySnapshot' должен иметь метод Symbol.iterator, который возвращает итератор.

Ответы [ 2 ]

3 голосов
/ 17 февраля 2020

Вы можете использовать свойство docs объекта QuerySnapshot, которое возвращает массив всех документов в QuerySnapshot.

Например, для a для l oop:

  return query.get()
    .then((snapshot) => {
      const snapshotsArray = snapshot.docs;
      for (var i = 0; i < snapshotsArray.length; i++) {
        const data = snapshotsArray[i].data()
        if (data.age == 16) {
            break;
        }
      }
  }

или с for-of:

  return query.get()
    .then((snapshot) => {
      const snapshotsArray = snapshot.docs;
      for (const snap of snapshotsArray) {
        const data = snap.data()
        if (data.age == 16) {
            break;
        }
      }
  }
0 голосов
/ 17 февраля 2020

Документы говорят, что QuerySnapshot<T> не является итератором / асин c итератором, поэтому вы не можете использовать его как один. Похоже, что единственный способ перебрать его - это forEach , который, похоже, не обеспечивает способ "раннего взлома".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...