2
好的,我的文本標籤應顯示用戶的名稱,但代碼在用戶數據獲取之前運行,並且數據加載時標籤不會更改。加載firebase數據時重新加載視圖控制器swift
第一次我打印的用戶名我得到零,但是當我在Firebase調用中打印時,我得到了用戶名。我該如何做到這一點,所以我不必在Firebase調用中更改標籤?
var ref: FIRDatabaseReference!
var user: User!
override func viewDidLoad() {
super.viewDidLoad()
ref = FIRDatabase.database().reference()
fetchUser()
self.titleLabel.text = user?.name
// Returns nil
print(user?.name)
}
func fetchUser() {
ref.child("users").child(userID!).observeSingleEvent(of: .value, with: { (snapshot) in
let value = snapshot.value as? NSDictionary
let name = value?["name"] as? String ?? ""
let birthdate = value?["birthdate"] as? String ?? ""
let gender = value?["gender"] as? String ?? ""
self.user = User(name: name, birthdate: birthdate, gender: gender)
// Now i get the users name
print(self.user.name)
}) { (error) in
print(error.localizedDescription)
}
}