2

我在使用 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
4

0 回答 0