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)"
}
}