我有以下代码,它总是检索所有文档,就像没有应用过滤器一样。 使用angular@5.2.0和angularfire2@5.0.0-rc.6
loads$: Observable<Load[]>;
status$: BehaviorSubject<string|null>;
this.loads$ = this.status$.switchMap(status =>
afs.collection<Load>('loads', ref => {
let query : firebase.firestore.Query = ref;
query.where('status', '==', status);
return query;
}).valueChanges());
});
数据库以这种方式设置 https://i.imgur.com/kWd9GOj.png
我通过以下方式更新状态observable:
filterByStatus(status: string) {
this.status$.next(status);
}
答案 0 :(得分:0)
我将此代码放在订阅中。我所做的只是将它移动到组件构造函数,它开始工作。发现我可以使用combineLatest()来做我想做的事。
答案 1 :(得分:0)
我遇到了同样的问题,请通过将行query.where('status', '==', status);
替换为query = query.where('status', '==', status);
来解决此问题