我想让我的当前用户名显示在导航栏上。
这使用的是Swift的最新版本(5)和iOS的Firebase的最新版本(6.3.0)。
这是我拥有的数据库。当前用户是“瑞沙”
rishabhmessage-cd077
users
-LhfNh3w6jYW4t71y2BM
email: "J@j.com"
name: "Jon"
-LhkGgXlWOUaZiR3PruD
email: "R@r.com"
name: "Rishabh"
let uid = Auth.auth().currentUser?.uid
Database.database().reference().child("users").child(uid!).observeSingleEvent(of: .value, with: {
(snapshot) in
print("1")
if let dictionary = snapshot.value as? [String: AnyObject] {
print("2")
self.navigationItem.title = dictionary["name"] as? String
}
}, withCancel: nil)
这应该为名称为“ Rishabh”的当前用户更新导航栏的标题。我添加了一些打印语句以进行调试。在控制台中显示print(“ 1”),而在控制台中不显示print(“ 2”)。
答案 0 :(得分:1)
snapshot.value为nil或它不是类型:[String:AnyObject]。我要做的是在if let词典行上断开,然后查看什么是snapshot.value