在给定名称和密码属性的情况下,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
时,它被多次调用,不间断。
知道为什么吗?