Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 在数据库搜索中将小写和大写视为相同_Swift_Firebase_Google Cloud Firestore - Fatal编程技术网

Swift 在数据库搜索中将小写和大写视为相同

Swift 在数据库搜索中将小写和大写视为相同,swift,firebase,google-cloud-firestore,Swift,Firebase,Google Cloud Firestore,我有一个firebase应用程序,我希望能够搜索用户,但我遇到的问题是,如果数据库值为hello,如果用户在搜索栏中输入hello,则返回true,但如果hello,则返回false。我希望能够将小写和大写视为相同,因此即使用户键入了hElLo,它也会返回true。下面是我的代码 func fsFindUser(q user: String, completion: @escaping CompletionHandler) { let userRef = fsRef.colle

我有一个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)

            }
        }
    }

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

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

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

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

这很有道理。所以我只能用Queryables搜索这很有意义。所以我只能用queryable搜索