【发布时间】:2019-05-30 12:10:29
【问题描述】:
我使用 firestore 作为数据库并使用 angularfire2 从中检索数据。 我有一个 cmets 集合,其中每个评论都存储一个用户 ID。我想获取用户 displayName 和 photoURL 等用户信息,然后将其与原始 cmets 流结合起来,生成一个包含评论信息和用户信息的流。我尝试将 cmets 和 users 流组合如下:
const comments$ = this.afs.collection(`comments`).valueChanges();
const users$ = this.afs.collection(`comments`).valueChanges().pipe(
switchMap((comments) => {
return comments.map(comment => this.afs.doc(`users/${comment.uid}`).valueChanges());
})
);
const combine = zip(comments$, users$, (comments, users) => {
return {...comments, ...users };
});
上面的代码没有达到我想要的效果。本质上,它从每个评论中读取用户 ID,然后使用此用户 ID 查找相关的用户信息,并将它们组合在一起作为结果流。 cmets$ observable 工作正常。 users$ observable 不起作用。另外,我不确定 zip 在这种情况下是否合适。
【问题讨论】:
标签: rxjs angularfire2