我试图在基于uid
的firestore中的两个不同集合之间进行某种连接。我有评论集合,每个评论都有一个uid。我想使用该uid来获取用户详细信息,例如username, photoURL
。
getUsersReviews(userId){
const reviewsRef = this.afs.collection('users-reviews', ref => ref.where('uid', '==', userId) );
reviewsRef.switchMap(reviews => {
let userObservables = reviews.map(status => this.afs.doc(`users/${userId}`))
return Observable.combineLatest(...userObservables)
.map((...users) => {
reviews.forEach((review, index) => {
review.username = users[0][index].username;
review.avatar = users[0][index].photoURL;
});
return reviews;
});
});
}
我怎样才能让它发挥作用?上述代码不适用于switchMap
在firestore集合中不存在的错误。
error TS2339: Property 'switchMap' does not exist on type 'AngularFirestoreCollection<{}>'.
即使导入了switchMap。
答案 0 :(得分:0)
AngularFirestoreCollection
不是Observable
,因此不会有switchMap
mehtod。请参阅此处的实施:
https://github.com/angular/angularfire2/blob/a13bf9b10e78dc74a1bfe61fea22480d2da859c1/src/firestore/collection/collection.ts#L45
使用snapshotChanges
的{{1}}或stateChanges
方法获取AngularFirestoreCollection
,您可以使用Observable
。