【问题标题】:Why isnt firestore filtering and always returning all documents?为什么 Firestore 不过滤并始终返回所有文档?
【发布时间】:2018-04-02 01:13:29
【问题描述】:

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

我通过以下方式更新可观察到的状态:

 filterByStatus(status: string) {
    this.status$.next(status); 
  }

【问题讨论】:

    标签: javascript angular google-cloud-firestore angularfire2


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-30
        • 2023-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多