无法检索数据并在 UIBarButton 中使用它 - Firebase Swift 3
Unable to retrieve data and use it in a UIBarButton - Firebase Swift 3
我正在尝试检索用户的用户名并将其保存到一个变量中,尽管每当我 运行 代码都没有任何反应。这是我的 Firebase 布局:
这是我的代码,它在我的 viewDidAppear()
let uid = FIRAuth.auth()?.currentUser?.uid
let ref:FIRDatabaseReference!
ref = FIRDatabase.database().reference().root.child("users").child("\(uid)")
ref.observeSingleEvent(of: .value, with: { snapshot in
print("test")
if !snapshot.exists() { return }
let user = (snapshot.value as? NSDictionary)?["name"] as? String ?? ""
print(user)
let username = UIBarButtonItem(title: user, style: UIBarButtonItemStyle.plain, target: self, action: nil)
let picture = UIBarButtonItem()
self.navigationController!.navigationItem.rightBarButtonItem = username
})
尝试使用:-
FIRDatabase.database().reference().root.child("users").child("\(FIRAuth.auth()!.currentUser!.uid)")observeSingleEvent(of: .value, with: { snapshot in
print("test")
if let snapDict = snapshot.value as? [String:AnyObject]{
let user = snapDict["name"] as! String
print(user)
let username = UIBarButtonItem(title: user, style: UIBarButtonItemStyle.plain, target: self, action: nil)
let picture = UIBarButtonItem()
self.navigationItem.rightBarButtonItem = username
} else {
print("No such user exists!.")
}
})
我正在尝试检索用户的用户名并将其保存到一个变量中,尽管每当我 运行 代码都没有任何反应。这是我的 Firebase 布局:
这是我的代码,它在我的 viewDidAppear()
let uid = FIRAuth.auth()?.currentUser?.uid
let ref:FIRDatabaseReference!
ref = FIRDatabase.database().reference().root.child("users").child("\(uid)")
ref.observeSingleEvent(of: .value, with: { snapshot in
print("test")
if !snapshot.exists() { return }
let user = (snapshot.value as? NSDictionary)?["name"] as? String ?? ""
print(user)
let username = UIBarButtonItem(title: user, style: UIBarButtonItemStyle.plain, target: self, action: nil)
let picture = UIBarButtonItem()
self.navigationController!.navigationItem.rightBarButtonItem = username
})
尝试使用:-
FIRDatabase.database().reference().root.child("users").child("\(FIRAuth.auth()!.currentUser!.uid)")observeSingleEvent(of: .value, with: { snapshot in
print("test")
if let snapDict = snapshot.value as? [String:AnyObject]{
let user = snapDict["name"] as! String
print(user)
let username = UIBarButtonItem(title: user, style: UIBarButtonItemStyle.plain, target: self, action: nil)
let picture = UIBarButtonItem()
self.navigationItem.rightBarButtonItem = username
} else {
print("No such user exists!.")
}
})