我想将 Jpeg 类型的图像上传到 firebase 存储
下面是上传到firebase存储的函数
func uploadImageToFirebase (data: NSData){
let StorageRef = Storage.storage().reference().child("User Products")
let uploadMetadata = StorageMetadata()
uploadMetadata.contentType = "image/jpeg"
StorageRef.putData(data as Data, metadata: uploadMetadata) { (metadata, error) in
if (error != nil){
print("I have an error")
}else {
print("upload metadata \(String(describing: metadata))")
}
}
这里我有一个选择器 Controller 函数,它位于另一个名为CamViewController
的类中
这里我从Mainviewcontroller
类调用函数
var discover = MainViewController()
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage
imageCam.image = image
discover.uploadImageToFirebase(data: image)
picker.dismiss(animated: true, completion: nil)
}
我收到错误:
Cannot convert value of type
UIImage?
to expected argument typeNSData
最佳答案
你需要
func uploadImageToFirebase (_ image:UIImage){
gurad let data = image.pngData() else { return }
..... OR
guard let data = image.jpegData(compressionQuality: 0.5) else { return }
}
<小时/>
discover.uploadImageToFirebase(image)
错误很明显,参数类型是NSData
,因此您无法传递UIImage
关于swift - 我有一个 'UIImage',我想将其转换为 NSData 以上传到 firebase 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55858916/