【问题标题】:Problem implementing search on my flutter app through cloud firestore通过 Cloud Firestore 在我的颤振应用程序上实现搜索的问题
【发布时间】:2023-03-14 14:00:02
【问题描述】:

我想通过 Cloud Firestore 数据库(通过文档的“NAME”字段)在我的 Flutter 应用程序上实现搜索。我遇到了下面的查询,但遗憾的是这个查询区分大小写。 如果我想搜索“Apple”,则必须输入“Apple”。输入“apple”或“Apple”不会给出任何结果。

FirebaseFirestore.instance
                        .collection('test')
                        .where(
                          'NAME',
                          isGreaterThanOrEqualTo: searchVal,
                          isLessThan: searchVal
                                  .substring(0, searchVal.length - 1) +
                              String.fromCharCode(searchVal
                                          .codeUnitAt(searchVal.length - 1) +
                                      1),
                        )
                        .snapshots()

请提出任何使搜索高效且不区分大小写的方法。

【问题讨论】:

  • 一种常见的做法是添加另一个字段,其值为强制为全小写的名称字段,并对输入的搜索词执行相同的操作。

标签: firebase flutter dart google-cloud-firestore cloud


【解决方案1】:

根据这个相关的thread,Firestore 目前无法执行不区分大小写的查询。在这种情况下,您的帖子上的评论适用,因此您应该在 Firestore 中创建一个包含所有小写名称的备用名称字段。在客户端,所有查询都应使用toLowerCase() 等函数进行小写,以便字母大小写在两端完全匹配。

【讨论】:

    猜你喜欢
    • 2020-12-14
    • 2021-05-05
    • 1970-01-01
    • 2019-05-25
    • 2021-04-15
    • 2018-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多