【问题标题】:Treating lowercase and uppercase as the same in database search [duplicate]在数据库搜索中将小写和大写视为相同[重复]
【发布时间】:2019-04-27 06:05:59
【问题描述】:

我有一个 firebase 应用程序,我希望能够搜索用户,但我遇到的问题是如果数据库值是 hello,如果用户在搜索栏中输入 hello,它会返回 true 但是如果Hello,则返回false。我希望能够将小写和大写视为相同,因此即使用户键入 hElLo,它也会返回 true。下面是我的代码。

func fsFindUser(q user: String, completion: @escaping CompletionHandler) {

        let userRef = fsRef.collection(USERS_REF)
        let query = userRef.whereField("user", isEqualTo: user)

        query.addSnapshotListener { (snapshot, error) in

            if let error = error {
                print("Error getting document: \(error)")
            } else if (snapshot?.isEmpty)! {

                completion(false)

            } else {
                completion(true)

            }
        }
    }

【问题讨论】:

    标签: swift firebase google-cloud-firestore


    【解决方案1】:

    答案是您在节点中存储两组数据;一个用于小写查询,另一个用于显示

    users
      uid_0
        queryable: "mcdonald"
        display: "McDonald"
      uid_1
        queryable: "van winkle"
        display: "Van Winkle"
    

    【讨论】:

    • 这很有意义。所以我只需要使用可查询的搜索
    猜你喜欢
    • 2017-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-01
    • 2023-03-20
    • 1970-01-01
    • 2013-04-01
    • 2010-12-27
    相关资源
    最近更新 更多