Swift 获取Firebase上用户Uid的字典

Swift 获取Firebase上用户Uid的字典,swift,firebase,uitableview,firebase-realtime-database,Swift,Firebase,Uitableview,Firebase Realtime Database,这是我的情况;我需要我的应用程序中所有用户的字典,以便在UITableView上使用didSelectRowAt,获取搜索到的用户uid。 我的firebase数据库设计如下: 不允许上传图像,请链接此处 而且,通过这样做,我成功地制作了用户名的字符串/字典 let rootRef = Database.database().reference() let query = rootRef.child("users").queryOrdered(byChild: "use

这是我的情况;我需要我的应用程序中所有用户的字典,以便在
UITableView
上使用
didSelectRowAt
,获取搜索到的用户
uid
。 我的
firebase
数据库设计如下: 不允许上传图像,请链接此处

而且,通过这样做,我成功地制作了用户名的
字符串/字典

        let rootRef = Database.database().reference()
    let query = rootRef.child("users").queryOrdered(byChild: "users")
    query.observe(.value) { (snapshot) in
        for child in snapshot.children.allObjects as! [DataSnapshot] {
            if let value = child.value as? NSDictionary {
               // declaring a user in class User() which was made with strings(name, email, ect.)
            let user = User()

            let name = value["name"] as? String ?? "name not found"
            // making the string of it go into the user.name
            user.name = name
            // appending it into a variable of class user()
            self.users.append(user)
            }
     }
}
我不知道该怎么做,因为
uid的
都是不同的,并且没有名字
(例如电子邮件:test@test.com).


也许我需要重组我的数据库以允许这样做,但我不太确定。谢谢你的帮助

一种方法是为uid保留一个字段以及名称、电子邮件和profileImageURI字段

let rootRef = Database.database().reference()
guard let uid = rootRef.child("users").childByAutoId().key
现在,将uid作为字段发送,同时将数据保存到firebase。 检索数据时,可以按如下方式映射数据:

let query = rootRef.child("users").queryOrdered(byChild: "users")
query.observe(.value) { (snapshot) in
    for child in snapshot.children.allObjects as! [DataSnapshot] {
        if let value = child.value as? NSDictionary {
           // declaring a user in class User() which was made with strings(name, email, etc.)
        var dict = [String:String]()
        let user = User()
        let name = value["name"] as? String ?? "name not found"
        // making the string of it go into the user.name
        user.name = name
        user.uid = value["uid"]
        dict[name] = "\(uid)"
        }
 }