snapshotChanges()多次流式传输

时间:2018-09-19 15:28:56

标签: javascript angular firebase google-cloud-firestore angularfire2

在给定名称和密码属性的情况下,Firestore数据库中的当前功能获取文档(lobbies):

getLobbyByNameAndPassword(name: string, password: string): Observable<Lobby[]> {
    const lobbiesRef =
      this.afs.collection('lobbies', ref => ref.where('name', '==', name)).snapshotChanges().pipe(
        map(actions => {
          return actions.map(a => {
            const data = a.payload.doc.data() as Lobby;
            const id = a.payload.doc.id;
            return { id, ...data };
          });
        }));
    return lobbiesRef.pipe(
      map((res) => {
        return res.filter(item => item.password === password);
      })
    );
  }

我正在使用snapshotChanges()提取文档的id,如官方git repo here中所述。但是我添加了pipe函数,因为我猜现在新版本的RxJS需要它。然后,我只是实现另一个管道来过滤结果。

问题是当我订阅此Observable时,它被多次调用,不间断。

知道为什么吗?

0 个答案:

没有答案