如何在应用中搜索用户? (最省钱的方式)在Firebase中

时间:2018-10-23 07:45:48

标签: swift firebase firebase-realtime-database uisearchcontroller

我用firebase制作了一个小型MVP测试应用。我还制作了一个ViewController来搜索用户。但是现在,一旦单击searchcontroller,我就必须在firebase项目中加载每个用户。这不是很可扩展。 (搜索控制器既显示用户的用户名,也显示个人资料照片。

我有它,因此用户必须至少键入两个单词,然后搜索控制器才能开始在表视图中显示内容。因此,也许一种解决方案是仅在单击时加载用户名,然后仅在显示当前用户时加载个人资料图片?如果是这样,我该如何实现?

{{1}}

1 个答案:

答案 0 :(得分:1)

您可以使用queryStartingAtValue

func searchQueryUsers(text: String, completion: @escaping (_ userNames: [String]) -> Void) {

    var userNames: [String] = []

    databaseRef.child("profile").queryOrdered(byChild: "username").queryStarting(atValue: text).observeSingleEvent(of: .value, with: { snapshot in

        for item in snapshot.children {

            guard let item = item as? DataSnapshot else {
                break
            }

            //"name" is a key for name in FirebaseDatabese model
            if let dict = item.value as? [String: Any], let name = dict["name"] as? String {
                userNames.append(name)
            }
        }

        completion(userNames)
    })
}