如何在Angular Firestore中创建带分页的逻辑AND

如何在Angular Firestore中创建带分页的逻辑AND,angular,google-cloud-firestore,angularfire2,Angular,Google Cloud Firestore,Angularfire2,我的firestore数据库中有一系列产品。我希望用户能够过滤这些产品的领域,如颜色,类型和品牌。每个产品都包含这些字段的值 目前,我尝试使用where查询返回用户将选择的值的集合(有效),但是我希望实现无限scoll/分页,以便限制一次完成的读取次数 我的代码尝试: return this.db .collection("products", (ref) => ref.where('productName', '==', 'sofa').orderBy

我的firestore数据库中有一系列产品。我希望用户能够过滤这些产品的领域,如颜色,类型和品牌。每个产品都包含这些字段的值

目前,我尝试使用where查询返回用户将选择的值的集合(有效),但是我希望实现无限scoll/分页,以便限制一次完成的读取次数

我的代码尝试:

  return this.db
  .collection("products", (ref) =>
    ref.where('productName', '==', 'sofa').orderBy('productName').startAfter(lastSeen).limit(batchSize)
  )
  .snapshotChanges();
这段代码当然会返回一个错误,因为您无法将where与orderBy/startAfter查询组合起来


我的问题是,如何调整此代码以使用多个等式where's(我希望精确匹配,因此不使用“array contains”),这也允许我使用orderBy,以便添加无限滚动/限制结果数。

angularfire2目前似乎不支持这一点

但是,我能够使用默认Firestore在测试应用程序中成功运行以下示例:


为延迟响应道歉-就将上述内容与Angular应用程序集成而言,如果不使用Angular Fire,这怎么可能呢?你可以链接一些文档吗?我编辑了答案。另外,请参见第页的“Web”示例
db.collection('cities')
.where('country','==', "USA")
.where('capital','==', true)
.orderBy("population")
.startAfter(100000)
.limit(2)
.get()