Firebase 我如何解决这个错误;无法分配类型为';用户?';输入';字符串?';?

Firebase 我如何解决这个错误;无法分配类型为';用户?';输入';字符串?';?,firebase,firebase-realtime-database,uinavigationcontroller,uinavigationbar,navigationbar,Firebase,Firebase Realtime Database,Uinavigationcontroller,Uinavigationbar,Navigationbar,我想从Firebase实时数据库获取用户数据,以便navigationItem.title显示为用户的用户名。我遇到了麻烦(我对编码还不熟悉),所以我觉得我丢失了很多代码,同时也不了解“observeSingleEvent”等代码的用法。如果我不想登录用户,我只希望他们的用户名(我希望从Firestore数据库获取)出现在导航栏中 import UIKit import Firebase import FirebaseDatabase import FirebaseAuth import Fir

我想从Firebase实时数据库获取用户数据,以便navigationItem.title显示为用户的用户名。我遇到了麻烦(我对编码还不熟悉),所以我觉得我丢失了很多代码,同时也不了解“observeSingleEvent”等代码的用法。如果我不想登录用户,我只希望他们的用户名(我希望从Firestore数据库获取)出现在导航栏中

import UIKit
import Firebase
import FirebaseDatabase
import FirebaseAuth
import FirebaseCore



class ViewController: UIViewController {

    
    override func viewDidLoad() {
        super.viewDidLoad()

         var ref = Database.database().reference().child("users").child("\(Auth.auth().currentUser!.uid)")

       ref = Database.database().reference()
        
             let user = Auth.auth().currentUser
                   
            self.navigationItem.title = user       "Error: Cannot assign value of type 'User?' to type 'String?'"
        

    

        func setCustomBackImage() {
            navigationItem.backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
        }
       

    setCustomBackImage()
    navigationController?.navigationBar.setBackgroundImage(UIImage(), for: .default)
    navigationController?.navigationBar.shadowImage = UIImage()
    navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Logout", style: .plain, target: nil, action: nil)

    }
    
    
    

}

我知道我遗漏了很多漏洞,因此任何建议都将不胜感激。

sir user位于对象上,您需要用户名作为标题分配/您可以访问像user.username这样的对象属性。无论您设置了什么。您能否对此进行扩展(我可以将用户名分配为对象吗)?因为我更多的是视觉学习者,所以我需要看看如何切实做到这一点。不,你不能将用户名指定为对象,你需要一个字符串。See User是一个对象,其中username是该对象的属性。要访问用户名,您需要像此user.username那样在场景中设置文本。sir user位于对象上,并且您需要用户名作为标题分配/您可以像user.username那样访问对象属性,无论您设置了什么。您可以在此基础上进行扩展吗(有没有办法将用户名分配为对象)?因为我更多的是视觉学习者,所以我需要看看如何切实做到这一点。不,你不能将用户名指定为对象,你需要一个字符串。See User是一个对象,其中username是该对象的属性。要访问用户名,您需要像此user.username一样在场景中设置文本。