为什么这些查询独立工作而不一起工作?

时间:2019-04-01 19:29:36

标签: javascript firebase vue.js google-cloud-firestore

我有两个要在我的Firestore集合中使用的查询。

这两个示例有效:

database
  .collection('servicebonnen')
  .where('medewerker', '==', 'CEES')

和:

database
  .collection('servicebonnen')
  .where('date', '>', this.today)
  .where('date', '<', this.tomorrow)

为什么不像这样将它们结合起来呢?:

database
  .collection('servicebonnen')
  .where('medewerker', '==', 'CEES')
  .where('date', '>', this.today)
  .where('date', '<', this.tomorrow)

2 个答案:

答案 0 :(得分:3)

firestore doc here中所述:

  

您还可以链接多个where()方法来创建更具体的查询(逻辑AND)。但是,要将等号运算符(==)与range或array-contains子句(<,<=,>,> =或array_contains)组合在一起,请确保创建一个复合索引。

因此,您需要创建composite index

答案 1 :(得分:0)

正如@hkchakladar所述,我需要添加一个复合索引来为非默认查询生成结果。