Firebase rxjs:如何从Firestore获取相关数据
我试图根据Firestore中的可观察对象返回的值获取一些相关数据Firebase rxjs:如何从Firestore获取相关数据,firebase,rxjs,google-cloud-firestore,angularfire2,Firebase,Rxjs,Google Cloud Firestore,Angularfire2,我试图根据Firestore中的可观察对象返回的值获取一些相关数据 getChampionshipResults(minimumCompetionCount: number): Observable<User[]> { const usersWithResults = this.afs.collection<User>('users') .valueChanges() .map(users => {
getChampionshipResults(minimumCompetionCount: number): Observable<User[]> {
const usersWithResults = this.afs.collection<User>('users')
.valueChanges()
.map(users => {
return users.map(user => {
this.afs.collection<Result>('results', ref => ref
.where('userUid', '==', user.uid)
.orderBy('position', 'asc')
.limit(minimumCompetionCount))
.valueChanges()
.take(1)
.subscribe(results => {
user.results = results;
});
return user;
});
})
.do(el => console.log(el));
return usersWithResults;
}
我认为问题的根源在于,内部可观测对象尚未完成,但我无法找到正确的rxjs运算符来完成我想要的操作
如有任何建议,将不胜感激。
谢谢
getChampionshipResults(minimumCompetionCount: number): Observable<User[]> {
const usersWithResults = this.afs.collection<User>('users')
.valueChanges()
.map(users => {
return users.map(user => {
this.afs.collection<Result>('results', ref => ref
.where('userUid', '==', user.uid)
.orderBy('position', 'asc')
.limit(minimumCompetionCount))
.valueChanges()
.take(1)
.subscribe(results => {
user.results = results;
});
return user;
});
})
.do(el => console.log(el))
// add sorting
.map(users => {
return users.sort((a, b) => {
// this is undefined
console.log(a.results);
// simplified dummy sort
return 1;
});
});
return usersWithResults;
}