我在我的代碼中具有以下功能來從Firebase數據庫讀取用戶個人資料圖片。爲什麼不是這個如果block正在執行
func setupProfile() {
profileImageView.layer.cornerRadius = 64
profileImageView.clipsToBounds = true
let uid = FIRAuth.auth()?.currentUser?.uid
let dbref = FIRDatabase.database().reference()
dbref.child("users").child(uid!).observeSingleEvent(of: .value, with: { (snapshot) in
let user = snapshot.value as? [String: AnyObject]
let username = user?["username"] as! String?
let url = user?["profileImage"] as? String!
if url == nil {
let pic = UIImage(named: "placeholderImage")
self.profileImageView.image = pic
dbref.removeAllObservers()
return
}
self.usernameLabel.text = "@" + username!
//self.profileImageView.downloadImage(from: url!)
})
dbref.removeAllObservers()
}
但當profileImage字段爲空它仍然不執行內部
if url == nil
塊執行的代碼,我知道,observeSingleEvent創建一個偵聽器,以查找數據變化但我認爲它會執行'with'關閉中的所有代碼,這意味着會碰到if語句。我在這裏錯過了什麼,爲什麼這段代碼不執行代碼的其餘部分。
您呼叫'dbref.removeAllObservers()'添加即使我刪除了這一行觀察者 –
@ReinierMelian之後,我仍然得到同樣的相同的行爲。 –
當你說清空你的意思時,''「'空字符串? –