我的代码中有以下函数来从firebase数据库中读取用户个人资料图片。
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语句。我在这里缺少什么,为什么这段代码执行所有其余的代码都不是。
答案 0 :(得分:0)
尝试删除!从行尾:
let url = user?["profileImage"] as? String