разобрался, не обращай внимания ..
му я пытаюсь обновить изображение профиля своего пользователя, как только пользователь создал профиль. Это код.
Он сохраняет выбранное изображение в хранилище, но моя база данных остается прежней. Profileimageurl, не меняется вообще.
Как я могу установить его так, чтобы он работал?
Чего мне не хватает?
Также имеет отношение к тому, что изображение моего профиля в ячейке collectionView связано с чем-либо?
func didtapImage() {
print("from userprofile controller")
let imagePickerController = UIImagePickerController()
imagePickerController.delegate = self
imagePickerController.allowsEditing = true
present(imagePickerController, animated: true) {
}
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
print("123")
if let editedImage = info["UIImagePickerControllerEditedImage"] as? UIImage {
print("what's going on here")
let image = editedImage
guard let uploadData = UIImageJPEGRepresentation(image, 0.3) else {return}
let filename = NSUUID().uuidString
let storageItem = Storage.storage().reference().child("profile_Image").child(filename)
storageItem.putData(uploadData, metadata: nil) { (metadata, err) in
if let err = err {
print("failed to upload", err)
return
}
storageItem.downloadURL(completion: { (downloadURL, err) in
guard let profileImageUrl = downloadURL?.absoluteString else {return}
print("successfully uploaded profile image:", profileImageUrl)
guard let currentUser = Auth.auth().currentUser?.createProfileChangeRequest() else {return}
let dictionaryValues = ["profileImageUrl": profileImageUrl]
let values = [currentUser: dictionaryValues]
currentUser.photoURL = URL(fileURLWithPath: profileImageUrl)
currentUser.commitChanges(completion: { (err) in
if let err = err {
print("not updated error", err)
guard let uid = Auth.auth().currentUser?.uid else {return}
let ref = Database.database().reference().child("users").child(uid)
ref.setValue(values, withCompletionBlock: { (err, ref) in
print("changedImage")
if let err = err {
print("did not get image",err)
}
print("updated user's profile image")
})
}
print("updated user image", profileImageUrl)
self.collectionView?.reloadData()
})
})
}
} else if let originalImage = info["UIImagePickerControllerOriginalImage"] as? UIImage {
let image = originalImage
//same thing as above.
}