Ios Firebase侦听器返回nil
我似乎无法检索节点“Users”下的子节点,我试图将侦听器返回的值放入字典中,然后访问它以检索名称Ios Firebase侦听器返回nil,ios,swift,firebase,firebase-realtime-database,Ios,Swift,Firebase,Firebase Realtime Database,我似乎无法检索节点“Users”下的子节点,我试图将侦听器返回的值放入字典中,然后访问它以检索名称 "Users" : { "GwXI9G1V0mSim8NGGbH18pjzpby2" : { "name" : "youssef abdelsalam", "profileImageUrl" : "default", "sex" : "Male" }, 这是我的firebase数据库 var postData = [String]() o
"Users" : {
"GwXI9G1V0mSim8NGGbH18pjzpby2" : {
"name" : "youssef abdelsalam",
"profileImageUrl" : "default",
"sex" : "Male"
},
这是我的firebase数据库
var postData = [String]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
tableView.delegate = self
tableView.dataSource = self
userRef = Database.database().reference().child("Users")
databaseHandle = userRef?.observe(.value, with: { (DataSnapshot) in
let post:[String:String]? = DataSnapshot.value! as? Dictionary
if let actualPost = post!["name"]{
self.postData.append(actualPost)
self.tableView.reloadData()
print("\(actualPost)")
}
})
}
由于
/Users
下可能有多个用户节点,因此需要在代码中处理这些节点。最简单的方法是在快照.children上循环:userRef=Database.Database().reference().child(“用户”)
它仍然不显示任何内容…在(post![“name”])行展开可选内容时,会弹出一个错误,指出已找到nil。在这种情况下,您可能需要检查字典中的值。
databaseHandle = userRef?.observe(.value, with: { (snapshot) in
for userSnapshot in snapshot.children.allObjects as! [DataSnapshot] {
let post:[String:String]? = userSnapshot.value! as? Dictionary
if let actualPost = post!["name"]{
self.postData.append(actualPost)
self.tableView.reloadData()
print("\(actualPost)")
}
}
})