【问题标题】:How to make search non-case-sensitive [duplicate]如何使搜索不区分大小写[重复]
【发布时间】:2021-02-18 03:42:46
【问题描述】:

我有一个名为 user 的集合和 doc id 为“dos12”的文档

并且有这样的数据 ({ 编号:2322012, 名称:'abc })

我正在使用

firestore().collection('user').orderBy('name')
            .startAt('abc)
            .endAt('abc + '\uf8ff')
.get()

如果我正在搜索 Abc,这将区分大小写,然后它不会得到结果。我怎样才能使它不区分大小写,以便我可以搜索 abc 或 ABC 获得相同的结果。以及如果我搜索字母 b 字母或 c 字母然后也能得到结果。现在如果我搜索 bc 然后没有得到任何结果。

谢谢

【问题讨论】:

    标签: firebase react-native google-cloud-firestore


    【解决方案1】:

    要支持不区分大小写,您需要编写一个单独的字段,例如

    db.collection("users").where("name", "==", "Abc")
    db.collection("users").where("name_lowercase", "==", "abc")
    

    类似下面的东西

    firestore().collection('user').orderBy('username_lowercase')
        .startAt(username.toLowerCase())
       .endAt(username.toLowerCase() + "\uf8ff")
    

    参考:Firestore-queries-still-case-sensitivefirestore-case-insensitive

    【讨论】:

    • 我尝试使用 firestore().collection('user').orderBy('username_lowercase') .startAt(username.toLowerCase()) .endAt(username.toLowerCase() + "\uf8ff ") 但如果我正在搜索 ABC,这将不起作用,它只给我 ABC 的数据
    猜你喜欢
    • 2017-03-06
    • 1970-01-01
    • 2017-07-31
    • 2018-11-21
    • 2013-04-01
    • 2013-10-18
    • 2016-12-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多