Как получить доступ к дочерним узлам Firestore - функция forEach не определена - PullRequest
0 голосов
/ 10 мая 2019

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

Следующий код был моей попыткой. Я потерпел неудачу, потому что появляется ошибка, которая говорит мне, что функция forEach() не определена. Тем не менее, это не имеет смысла для меня. Эта документация показывает, что возвращаемая функция get равна Promise<QuerySnapshot>. В последовательности этот документ показывает метод объектов QuerySnapshot, а также метод forEach.

 var myarray = firebase.firestore().collection('cards').get();  
 myarray.forEach( k => {
    console.log(k)
 });

Я пришел сюда в поисках помощи. Может кто-нибудь объяснить мне, почему метод forEach не существует для данного объекта и как я могу перебрать дочерние узлы в коллекции cards, чтобы я мог проверить их атрибуты?

Ответы [ 2 ]

3 голосов
/ 10 мая 2019
firebase.firestore().collection('cards').get().then(snapshot => {

    snapshot.forEach(doc => {
        console.log(doc.data());
    });

});

Метод then () возвращает Promise.В основном вам нужно подождать, пока данные не будут возвращены из firebase, прежде чем вы сможете получить к ним доступ и использовать их.Тогда вам просто нужно зациклить снимок, который возвращается из обещания.

0 голосов
/ 10 мая 2019

Попробуйте console.log (firebase.firestore (). Collection ('cards'). Get ());

Похоже, это может быть ноль или что-то еще, но явно не массив,в противном случае метод .forEach () должен работать,

, как вы можете видеть при этом:

    var myarray = [1,2];  
 myarray.forEach( k => {
    console.log(k)
 });

https://jsfiddle.net/21c9sf7L/

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