下载 Firebase 存储网址不起作用



>我有一张上传到Firebase存储的图像,但我无法获得将其保存在数据库中的downloadURL

我已经在StackOverflow上阅读了很多帖子,但对我来说没有任何效果。映像已加载到存储中,但错误指出它不存在。

  let image = self.selectedImage
  let imageData = UIImageJPEGRepresentation(image, 0.1) 
  let storageRef = Storage.storage().reference().child(uid)
  storageRef.putData(imageData, metadata: nil) // i know that i can use a completion here but i left it for now 
  storageRef.downloadURL { url, error in
        if let error = error {
            print(error)
        } else {
            // do sth. else
        }
    }

这些是我收到的错误:

FIRStorageErrorDomain Code=-13010 "Object W002MjRvi0d8JfVwImUJhH0ph2O2 does not exist."UserInfo={object=W002MjRvi0d8JfVwImUJhH0ph2O2,   
 ResponseBody={
  "error": {
    "code": 404,
    "message": "Not Found.  Could not get object"
  }
}

ResponseErrorDomain=com.google.HTTPStatus, ResponseErrorCode=404}

请查看存储规则

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write: if request.auth!=null;
    }
  }
}

在您的视图中控制器

import Firebase
import FirebaseAuth
import ImageIO

var imgData: NSData = NSData(data: UIImageJPEGRepresentation((self.img_Photo?.image)!, 0.5)!)
self.uploadProfileImageToFirebase(data: imgData)

func uploadProfileImageToFirebase(data:NSData){
    guard let userID = Auth.auth().currentUser?.uid else {
                return
            }
    let storageRef = Storage.storage().reference().child(“Images”).child(userID)
    if data != nil {
        storageRef.putData(data as Data, metadata: nil, completion: { (metadata, error) in
            if(error != nil){
                print(error)
                return
            }
            // Fetch the download URL
            storageRef.downloadURL { url, error in
                if let error = error {
                    // Handle any errors
                    if(error != nil){
                        print(error)
                        return
                    }
                } else {
                    // Get the download URL for 'images/stars.jpg'
                    let urlStr:String = (url?.absoluteString) ?? ""
                }
            }
        })
    }
}

相关内容

最新更新