我在使用 switchMap 时遇到问题。我想做的是:
1) 从 Firestore DB 中获取第一个对象/对象的属性作为 Observable
2)使用第一个 Observable 的属性并进行另一个 Firestore 调用以获取另一个 Observable - 这取决于第一个 - 。
我的问题是,如何将第一个 observable 的结果动态传递给第二个 observable?
有什么帮助吗?
用户服务:
this.userCollection = this.afs.collection('users',
ref => ref.orderBy("user_order", "desc").limit(1));
this.users$ = this.userCollection.valueChanges();
return this.users$
任务服务:
getUserTask(users: User[]): Observable<UserTask[]> {
this.tasksCollection = this.afs.collection('user_tasks',
ref => ref.where("user_id", "==", users[0].user_id));
return
this.userTaskCollection.valueChanges();
}
我的组件.ts:
this.user$ = this.userService.getUser();
const userTaskResult = this.user$.pipe(
switchMap((user) => this.userTaskService.getUserTask(user))
);
userTaskResult.subscribe(x => console.log(x)); //returns nothing