【问题标题】:Object as a query parameter in Firestore对象作为 Firestore 中的查询参数
【发布时间】:2019-12-24 02:38:27
【问题描述】:

是否可以在 Firestore 中将 javascript 对象作为“where 查询”传递?传统的查询方式是这样的:

this.db.collection('riders', ref => 
  ref.where('vehicle', '==', 'bicycle')
     .where('activity', '==', 'available')
     .where('isActive', '==', true)
 .valueChanges().subscribe();

但我想使用这样的对象:

query = {
   vehicle: 'bicycle',
   activity: 'available',
   isActive: true
}

我正在使用 AngularFire2

【问题讨论】:

    标签: javascript firebase google-cloud-firestore angularfire2


    【解决方案1】:

    这应该可以解决问题:

    conditions = {
       vehicle: 'bicycle',
       activity: 'available',
       isActive: true
    }
    let query = ref;
    Object.keys(conditions).forEach((key) => {
        query = query.where(key, "==", conditions[key]);
    })
    
    this.db.collection('riders', ref => query)
     .valueChanges().subscribe();
    

    【讨论】:

    • 行内:let query = ref;
    • 这里的 ref 是您要对其执行查询的任何数据库引用。
    【解决方案2】:

    试试这个方法

    query = {
       vehicle: 'bicycle',
       activity: 'available',
       isActive: true
    }
    
    this.db.list(`riders`, {
        query: {
        ...query
       }
    });
    

    【讨论】:

      猜你喜欢
      • 2018-04-20
      • 1970-01-01
      • 2021-07-30
      • 1970-01-01
      • 2021-11-08
      • 2020-07-09
      • 2019-06-23
      • 2021-07-29
      • 2017-11-14
      相关资源
      最近更新 更多