对Firestore不区分大小写的查询

时间:2018-03-11 11:01:01

标签: angular typescript firebase ionic3 google-cloud-firestore

您能告诉我如何在Firestore上进行不区分大小写的查询?

例如 Hallwayhallway两者必须相同。但下面的查询确实搜索。即如果db有Hallway且我尝试搜索hallway,则会显示no records

  getSpecificTempBudgetGroup(name: string): AngularFirestoreCollection<BudgetGroup> {
    return this.fireStore.collection<BudgetGroup>(`members/${this.authenticationProvider.member.id}/budgetGroups`, ref => ref
      .where('name', '==', name)
    );
  }

我也试过了toLowerCase()。但没有运气:(任何线索?

getSpecificTempBudgetGroup(name: string): AngularFirestoreCollection<BudgetGroup> {
        return this.fireStore.collection<BudgetGroup>(`members/${this.authenticationProvider.member.id}/budgetGroups`, ref => ref
          .where('name.toLowerCase()', '==', name.toLowerCase())
        );
      }

注意:我也看到了可能的重复答案。但它并没有给我的用例提供那么多的想法。但是我使用下面提到的MongoDB答案得到了有用的信息。

1 个答案:

答案 0 :(得分:2)

我在db上创建了一个属性lowerCaseName,然后更改了我的查询,如下所示。我通过this MongoDB answer启发了这个解决方案。

  getSpecificTempBudgetGroup(name: string): AngularFirestoreCollection<BudgetGroup> {
    return this.fireStore.collection<BudgetGroup>(`members/${this.authenticationProvider.member.id}/budgetGroups`, ref => ref
      .where('lowerCaseName', '==', name.toLowerCase())
    );
  }