Я пытаюсь получить пользователя для каждого из моих сообщений документов.У нас есть:
users
user_id => user_data
message
msg_id => { message, user_id }
Итак, я попытался (основываясь на ответе ):
getUserData(userId) {
const docRef = this.afs.collection('/users').doc(userId);
return docRef.ref.get();
}
getMsgs(topicId){
return this.afs.collection('/topics_msgs/' + topicId + "/comments").snapshotChanges().map(actions => {
return actions.map(a => {
const commentData = a.payload.doc.data();
this.getUserData(commentData.user_id).then(
user => {
return {user: user.data(), ...commentData};
}
);
});
});
}
и в компоненте:
this.firebaseService.getMsgs(this.id).subscribe( msgs => {
console.log(msgs);
this.messages = msgs;
})
но, конечно, это не может работать - внутренняя карта не возвращает ничего, кроме обещания, поэтому компонент получает список undefined
.
Я немногоЗастрял здесь о том, как бороться с этим.Спасибо вперед.