Текущие документы выборки (lobbies
) в моей базе данных Firestore с указанными свойствами имени и пароля:
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 здесь .Но я добавил pipe
функцию, потому что я думаю, что это требуется сейчас с более новой версией RxJS.Затем я просто внедряю другой канал для фильтрации результатов.
Проблема в том, что когда я подписываюсь на этот Observable
, он вызывается несколько раз, без остановки.
Есть идеи почему?