ios 正在将图像上传到 Firebase,但在我尝试下载时却没有?

标签 ios swift firebase uiimage firebase-storage

我正在尝试将我的 userProfile 图像上传到 Firebase,尽管上传成功,但是当我通过 Firebase 控制台上的下载链接下载它时,它会作为文档文件下载,而不是我上传的 jpg 文件? 另外,当我将图像设置为特定图像时,我的 UIImage 接管了 View Controller 中的所有 View 。

这是我的代码:

@IBAction func registerRegisterButton(_ sender: UIButton) {
    let userProfileImageRef = self.storage.reference().child("userProfileImage")

    //testing image setup
    self.registerUserProfileImage.image = UIImage(named:"puppy.jpg")

    // Registering user with email
    Auth.auth().createUser(withEmail: registerUserEmailTextField.text!, password: registerUserPasswordTextField.text!) { (user, error) in

        if error != nil {
            print(error)
        } else {
            print("Registration complete")

            // if register succcessful, we upload the user profile image to firebase
            let data = Data()

            //uploading user profile picture
            if let uploadData = UIImagePNGRepresentation(self.registerUserProfileImage.image!) {
                userProfileImageRef.putData(uploadData, metadata: nil, completion: { (metadata, error) in

                    if error != nil {
                        print(error)
                        return
                    } else {
                        print("Success upload!")
                        self.dismiss(animated: true, completion: nil)
                        self.performSegue(withIdentifier: "registrationCompleteSegue", sender: self)
                    }
                })

            }
        }
    }
}

感谢您提前提供的帮助

最佳答案

我认为您正在尝试下载 Image 的 URL 并将其设置到 ImageView 中。如果是,则创建一个 StorageMetadata 类型的元数据,并将内容类型设置为image/jpeg。然后将其传递到 Firebase Reference 的 putData 方法中,并使用 putData 方法的 metadata 参数获取 ImageURL。

let metaData = StorageMetadata()
metaData.contentType = "image/jpg"

        if let uploadData = UIImagePNGRepresentation(self.registerUserProfileImage.image!, 0.8) as NSData {

           userProfileImageRef.putData(uploadData as Data, metadata: metaData, completion: { (metadata, error) in

                if error != nil {
                    print(error)
                    return
                } else {
                    print("Success upload!")
                    var imageURL = (metadata?.downloadURLs?[0].absoluteString)!  //Here's your image url. Then just set it to ImageView

                    self.dismiss(animated: true, completion: nil)
                    self.performSegue(withIdentifier: "registrationCompleteSegue", sender: self)
                }
           })
       }

用于设置带 URL 的图像。请检查此链接 https://stackoverflow.com/a/43486949/4608334

关于ios 正在将图像上传到 Firebase,但在我尝试下载时却没有?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48017357/

相关文章:

ios - PROD 和 STAGING 中适用于 iOS 的 Google 跟踪代码管理器容器设置

ios - 文本字段的前缀不起作用

ios - 如何提高一个月计算中工作日数的准确性?

android - Android Studio 在线数据库

javascript - React - 父级未将方法传递给子级

ios - NSManagedObject ChangedValues 忽略字符串值

ios - 为 iOS 应用程序创建介绍屏幕

ios - 无法使用谓词作为字符串从 coreData 中获取?

firebase - 通过查询从 Firebase 获取用户电子邮件

iOS Swift,返回 View Controller 的同一实例