Вернуть внутреннюю наблюдаемую с каким оператором? - PullRequest
0 голосов
/ 07 ноября 2018

chat.service.ts:

  getUserChats(): Observable<Chat[]> {
    return this.auth.currUser
      .pipe(
        take(1),
        flatMap(user => this.afs
          .collection('chats', ref => {
            console.log(user.uid)
            return ref.where('members', 'array-contains', `/users/${user.uid}`);
          })
          .snapshotChanges()
          .pipe(
            map(actions => {
              return actions.map(action => {
                const data = action.payload.doc.data() as Chat;
                const id = action.payload.doc.id;
                return {id, ...data};
              });
            })
          ) as Observable<Chat[]>)
      );
  }

Есть ли способ вернуть внутреннюю Наблюдаемую, которая содержит чаты от пользователя?

this.afs
              .collection('chats', ref => {
                console.log(user.uid)
                return ref.where('members', 'array-contains', `/users/${user.uid}`);
              })
              .snapshotChanges()
              .pipe(
                map(actions => {
                  return actions.map(action => {
                    const data = action.payload.doc.data() as Chat;
                    const id = action.payload.doc.id;
                    return {id, ...data};
                  });
                })
              ) as Observable<Chat[]>

Во внутренней наблюдаемой мне нужно подождать, пока user.uid запросит чаты.

1 Ответ

0 голосов
/ 08 ноября 2018

Switchmap в порядке, хорошо работает с ним, проблема была в том, что «array-содержа» не работает для DocumentReferences в Firestore

...