Не удается получить доступ к коллекции из зацикленной коллекции - PullRequest
0 голосов
/ 01 ноября 2018

Я хочу получить доступ к коллекции внутри другой коллекции в цикле for. Является ли это возможным? Я получаю сообщение об ошибке в 4-й строке Error getting documents TypeError: cookUser is not a function

var mealsOnline = [];
return db.collection('users').get().then(function (snapshot) {
   snapshot.forEach(cookUser => {
      cookUser.collection('meals').get().then(function (snapshot2) {
         snapshot2.forEach(meal => {
            if (meal.data().portion > 0) {
               var mealObject = meal.data();
               mealObject.id = meal.id;
               mealObject.address = cookUser.data().address;
               mealObject.cookName = cookUser.data().displayName;
               mealsOnline.push(mealObject);
            }
         });
      });
   });
   return Promise.all(mealsOnline);
}).catch(err => {
   console.log('Error getting documents', err);
});

1 Ответ

0 голосов
/ 01 ноября 2018

При использовании метода forEach() ваш объект cookUser является QueryDocumentSnapshot .

Как подробно описано в документации (ссылка выше), «QueryDocumentSnapshot предлагает ту же поверхность API, что и DocumentSnapshot». Поэтому вам следует использовать ref абстрактный тип DocumentSnapshot , как указано ниже:

   snapshot.forEach(cookUser => {
      cookUser.ref.collection('meals').get().then(snapshot2 => {
        .....
      })
   })

https://firebase.google.com/docs/reference/js/firebase.firestore.QuerySnapshot#forEach

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