从Firebase实时数据库中检索当前用户(Swift 4/5)

时间:2019-06-20 14:34:25

标签: ios swift firebase

我想让我的当前用户名显示在导航栏上。

这使用的是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”)。

1 个答案:

答案 0 :(得分:1)

snapshot.value为nil或它不是类型:[String:AnyObject]。我要做的是在if let词典行上断开,然后查看什么是snapshot.value