我有一个'UIImage',我想将其转换为 NSData 以上传到 Firebase 存储中



我想将 Jpeg 类型的图片上传到 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))")
            }
        }

在这里,我有一个选择器控制器函数,它位于另一个名为 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)
    }

我收到错误:

无法将 UIImage? 类型的值转换为预期的参数类型 NSData

你需要

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

最新更新