我正在尝试将我的 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/