Как получить документ из Id, полученный из другого документа angularFirestore - PullRequest
0 голосов
/ 14 мая 2018

У меня возникла проблема при попытке получить информацию из одного документа внутри другого документа, который мне нужен, поскольку у него есть свойство Id.

На следующем img я могу получить доступ к своей коллекции диет и получить свой конкретный документ, но тогда я не могу «вернуться» и получить свой информационный идентификатор:

enter image description here

Тогда моя структура пользователей выглядит следующим образом: enter image description here

Как только я выявлю свою проблему, я покажу вам код, который я не могу продолжить:

commentsDietC: AngularFirestoreDocument<any>;
commentsDiet : Observable<any>;

 this.commentsDietC = db.doc<any>('diets/'+this.diet.idDiet);
 this.commentsDiet = this.commentsDietC.snapshotChanges()
 .map(actions => {
  if(actions.payload.data()){
    if(actions.payload.data().hasOwnProperty('commentsDiet')){

      /*HERE is where I should try to get the displayName and PhotoUrl from 
      the other document*/
      return actions.payload.data().commentsDiet;
     }
  }

});

Любая помощь будет очень признательна.

1 Ответ

0 голосов
/ 14 мая 2018

Я думаю, вы ищете что-то вроде этого:

this.commentsDiet = this.commentsDietC.snapshotChanges()
 .map(actions => {
  var data = actions.payload.data();
  if(data){
    if(data.hasOwnProperty('commentsDiet')){
      data.commentsDiet.forEach(comment => {
        var userDocRef = firebase.firestore().doc('users/'+comment.idUser);
        userDocRef.get().then(userDoc => {
          console.log(userDoc.data().displayName);
        });
      });
    }
  }    
});

Так что, как только вы определили, что есть комментарии, этот код перебирает комментарии, а затем получает пользователя для каждого комментария.

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