为什么不进行firestore过滤并始终返回所有文档?

时间:2018-04-02 01:13:29

标签: javascript angular google-cloud-firestore angularfire2

我有以下代码,它总是检索所有文档,就像没有应用过滤器一样。 使用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); 
  }

2 个答案:

答案 0 :(得分:0)

我将此代码放在订阅中。我所做的只是将它移动到组件构造函数,它开始工作。发现我可以使用combineLatest()来做我想做的事。

答案 1 :(得分:0)

我遇到了同样的问题,请通过将行query.where('status', '==', status);替换为query = query.where('status', '==', status);来解决此问题