【问题标题】:AngularFirestore - Update query dynamicallyAngularFirestore - 动态更新查询
【发布时间】:2018-12-15 16:46:00
【问题描述】:

我有以下疑问:

loadData(settings: any): Observable<any[]> {
    const ref = this.db.collection('data').ref
      .orderBy('simpleID', 'desc')
      .where('isVerified', '==', true)
      .limit(5);
    // Gender filter
     if (settings.includeMales && !settings.includeFemales) {
       ref.where('gender', '==', 'm');
     } else if (!settings.includeMales && settings.includeFemales) {
       ref.where('gender', '==', 'f');
     }

return this.db.collection('confessions', ref => ref)
      .valueChanges();

我想根据settings 对象动态应用过滤器。

如何使用 ref 变量并将其传递给 Angularfire2 的 collect() 方法?

【问题讨论】:

    标签: javascript angular firebase google-cloud-firestore angularfire2


    【解决方案1】:

    每次调用where() 或其他方法时,它实际上都会返回一个新查询。所以你只需要确保捕获每个调用的查询。

    var query = this.db.collection('data').ref
      .orderBy('simpleID', 'desc')
      .where('isVerified', '==', true)
      .limit(5);
    if (settings.includeMales && !settings.includeFemales) {
      query = query.where('gender', '==', 'm');
    } else if (!settings.includeMales && settings.includeFemales) {
      query = query.where('gender', '==', 'f');
    }
    
    return this.db.collection('confessions', ref => query).valueChanges();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-05
      • 2023-03-16
      • 1970-01-01
      • 2017-08-10
      • 1970-01-01
      • 1970-01-01
      • 2014-10-20
      • 2022-01-10
      相关资源
      最近更新 更多