我在使用switchMap时遇到问题。我想做的是:
1)从Firestore DB中获取第一个对象/对象的属性作为可观察对象
2)使用第一个Observable的属性并进行另一个Firestore调用,以获取另一个Observable-它取决于第一个Observable。
我的问题是,如何动态地将第一可观察结果传递给第二可观察结果?
有帮助吗?
user.service:
this.userCollection = this.afs.collection('users',
ref => ref.orderBy("user_order", "desc").limit(1));
this.users$ = this.userCollection.valueChanges();
return this.users$
task.service:
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();
}
myComponent.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