0
데이터를 가져오고 싶습니다. 여러 번했는데 어떤 이유로 작동하지 않고 이유가 없습니다. 데이터Firebase가 사용자 데이터를 가져옵니다 - Swift
func fetchCurrentUserInfo() {
let currentUser = Auth.auth().currentUser!
let currentUserRef = dataBaseRef.child("users").child(currentUser.uid)
currentUserRef.observeSingleEvent(of: .value, with: { (snapshot) in
let user = UserClass(snapshot: snapshot)
self.downloadImageFromFirebase(urlString: user.photoURL!)
self.userName.text = user.getFullName()
//SD Cache
self.userProfileImage.sd_setImage(with: URL(string: user.photoURL!), placeholderImage: UIImage(named: "UserImageTemplate"))
}) { (error) in
let alert = SCLAlertView()
_ = alert.showError("OOPS!", subTitle: error.localizedDescription)
}
}
내가 읽기를 설정하고 true로 규칙을 작성했다
struct UserClass {
var firstName: String?
var email: String?
var photoURL: String?
var uid: String?
var ref: DatabaseReference!
var key: String?
var lastName: String?
var accountType: String?
init(snapshot: DataSnapshot){
key = snapshot.key
ref = snapshot.ref
accountType = (snapshot.value! as! NSDictionary)["Account Type"] as? String
firstName = (snapshot.value! as! NSDictionary)["First Name"] as? String
email = (snapshot.value! as! NSDictionary)["email"] as? String
uid = (snapshot.value! as! NSDictionary)["uid"] as? String
photoURL = (snapshot.value! as! NSDictionary)["photoURL"] as? String
lastName = (snapshot.value! as! NSDictionary)["Last Name"] as? String
}
func getFullName() -> String {
return ("\(firstName!) \(lastName!)")
}
}
}
내 사용자 클래스 파일을 가져 오는에 대한
내 코드입니다. fetchCurrentUserInfo 함수를 호출하면 이름, 성, 키 등의 모든 데이터가 반환되지만 사진 URL, UID 또는 전자 메일이 nil로 반환되므로 오류가 발생합니다. 치명적인 오류 : unexpectedly found nil while unwrapping an Optional value
.
감사 :
또한, 그래서 싶습니다 더 좋은 모델이 안전합니다. 이제 중단 점과 PO 스냅 샷이 있으면 사용자의 데이터를 반환합니다. 그러나, 나는 이렇게 변수에 할당하려고 : let user = UserClass (snapshot : currentUser)! 그런 다음 디버그 콘솔에서 PO 사용자. 그러나 데이터가 "일부"로 반환되고 데이터를 읽을 수 없거나 없으면 user.photoURL을 할당하려고 할 때 충돌이 발생합니다. 건배. –
잠깐, "PhotoURL"에 대문자로 내려 갔다는 것을 알았습니다. –