首页 > 解决方案 > 如何从 Firebase 存储中检索配置文件图像

问题描述

我想知道如何取回已存储到 Firebase 存储的图像,以便将其显示为用户个人资料图像?

private let storage = Storage.storage().reference()
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    if let image = info[.originalImage] as? UIImage, let imageData = image.pngData() {
        imageView.image = image
        let storageRef = Storage.storage().reference().child("ProfileImages").child("profile.png")
        let metaData = StorageMetadata()
        metaData.contentType = "image/png"
        storageRef.putData(imageData, metadata: metaData) { (metaData, error) in
            if error == nil, metaData != nil {
                storageRef.downloadURL { url, error in
                    if let url = url {
                        print(url)//URL of the profile image
                        self.saveProfileImageUrlInUserDetails(url: url)
                    }
                }
            } else {
                print(error?.localizedDescription as Any)//upload failed
            }
        }
    }
    picker.dismiss(animated: true, completion: nil)
}

func saveProfileImageUrlInUserDetails(url: URL) {
    let changeRequest = Auth.auth().currentUser?.createProfileChangeRequest()
    changeRequest?.photoURL = url
    changeRequest?.commitChanges(completion: { error in
        if error == nil {
            //saved
        } else {
            print(error?.localizedDescription as Any)//failed to udpate
        }
        
    })
}

标签: swiftfirebasefirebase-storageuiimagepickercontroller

解决方案


推荐阅读