我使用Firebase來保存用戶個人資料信息。因爲你不能聽存儲引用,所以我在數據庫中添加了一個子選項,每當用戶改變他們的個人資料圖片時(只是一個隨機生成的uuidString),我確認它確實在firebase中發生了變化,並且新的孩子處於相同的狀態作爲其他用戶的位置,每當用戶更改他們的信息時,正在查看該用戶信息的用戶應該看到更改,因此我測試了這一點,即使孩子正在更改,也沒有更改個人資料圖片。但是,如果用戶更改另一塊信息,我與生物測試它,配置文件將更新,與最新的配置文件PIC沿碼的中間調試版本低於:Swift中Firebase .childChanged的問題
let ref = DatabaseReference.allUsers.reference()
let query = ref.queryOrdered(byChild: "uid").queryEqual(toValue: (user.uid))
query.observe(.childChanged, with: { snapshot in
let user = User(dictionary: snapshot.value as! [String : Any])
self.user = user
self.bio.text = user.bio
self.user?.fullName = user.fullName
self.user?.instagram = user.instagram
self.user?.facebook = user.facebook
self.user?.phone = user.phone
self.user?.email = user.email
})
//let ref2 = DatabaseReference.users(uid: user.uid).reference()
//let query2 = ref2.child("updatePic")
query.observe(.childChanged, with: { snapshot in
let user = User(dictionary: snapshot.value as! [String : Any])
self.user?.downloadProfilePicture { [weak self] (image, error) in
self?.profilePicture.image = image
let profilePictureKey = "\(user.uid)-headerImage"
self?.cache?.setObject(image, forKey: profilePictureKey)
}
})
到目前爲止,我抓傷我的頭,因爲我不知道我可能會錯過什麼,基本上,它沒有意識到這個孩子已經改變了雖然我看着它在我眼前變了。有任何想法嗎?
更新:在childChanged被觸發時,配置文件照片是否可能未完成更新?因此正在下載相同的照片?這是我改變光電流代碼:
extension FIRImage {
func saveProfileImage(_ userUID: String, _ completion: @escaping (Error?) -> Void) {
let resizedImage = image.resized()
let imageData = UIImageJPEGRepresentation(resizedImage, 1.0)
ref = StorageReference.profileImages.reference().child(userUID)
downloadLink = ref.description
ref.put(imageData!, metadata: nil) {
(metaData, error) in
completion(error)
}
updateProfilePic(userUID)
}
func updateProfilePic(_ userUID: String) {
var randomString = UUID().uuidString
let ref = DatabaseReference.users(uid: userUID).reference()
ref.child("updatePic").setValue(randomString)
}
是的,它並沒有真正的幫助。這就好像你是一名機械師,並且我把我的大衆帶到了你身邊,而你說「你應該有一輛梅賽德斯代替」 – Sudacris