首页 > 解决方案 > 从 firebase 实时数据库中检索当前用户(Swift 4/5)

问题描述

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

这是使用最新版本的 Swift (5) 和最新版本的 Firebase for iOS (6.3.0)。

这是我拥有的数据库。当前用户是“Rishabh”

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") 不显示。

标签: iosswiftfirebase

解决方案


snapshot.value 要么是 nil,要么不是类型:[String:AnyObject]。我要做的是打破 if let 字典行,然后看看 snapshot.value 是什么


推荐阅读