繁体   English   中英

ios将图像上传到Firebase,但是不是在我尝试下载图像时?

[英]ios uploading image to Firebase but it's not when I am trying to download it?

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

这是我的代码:

@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类型的meta data ,并将content type设置为image/jpeg 然后将其传递到Firebase参考的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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM