将用户名作为 NavBar Item

Put users name as NavBar Item

我正在尝试使用 firebase 允许用户名出现在导航栏中。昨晚,我的代码运行完美。今天早上,当我试图恢复编码时,我的应用程序突然崩溃了,老实说,我不知道为什么。谁能帮我解释一下我做错了什么?

我的代码如下。

   let uid = Auth.auth().currentUser?.uid
            Database.database().reference().child("users").child(uid!).observeSingleEvent(of: .value, with: { (snapshot) in
                if let dictionary = snapshot.value as? [String: AnyObject] {
                    self.navigationItem.title = dictionary["name"] as? String
                }
            }, withCancel: nil)

错误信息属于 Database.database().reference().child("users").child(uid!).observeSingleEvent(of: .value, with: { (snapshot)在 如果让 dictionary = snapshot.value 作为? [字符串:AnyObject] {

// 错误信息是 Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

昨晚再次,代码运行完美。当我创建一个用户并让他们登录时,他们的名字会出现在导航栏中。现在突然之间,它崩溃了。

如果您的应用使用登录和注销,尝试注释有错误的行,构建并运行能够从应用中注销,然后使用原始代码重建应用,登录,应该没问题

如果您不使用登录页面,请尝试清理您的项目(cmd shift k)