swiftui上传视频到云存储出错

Error uploading video to cloud storage swiftui

我有一个视频创建过程,其中用户使用 UIImagePickerController 选择视频。选择视频后,视频的 url 被传递到视频详情页面。用户完成详细信息并点击上传后,我 运行 此代码:

if canProceed(){
    
    let fileName = "\(UUID().uuidString).mov"
    
    storage.reference(withPath: "videos/\(Auth.auth().currentUser?.email ?? "")/\(fileName)").putFile(from: vidURL, metadata: nil) { metadata, err in
        
        if err != nil{
            print(err)
            return
        }
        
        metadata?.storageReference?.downloadURL(completion: { url, err in               
            if err != nil{
                print(err)
                return
            }
            
            db.collection("reelPool").document(fileName).setData(["url": url])
        })            
    }        
}

没有任何内容上传到云存储,return 是:

Error Domain=FIRStorageErrorDomain Code=-13000 "An unknown error occurred, please check the server response."

您是否记得编辑您的 Firestore 规则以允许 read/write 访问?您的数据库可能不允许写入或只允许经过身份验证的用户写入。通常,代码 -13000 与数据库的权限问题有关。

嗨,我想这是你的答案试试吧, // Url 是视频 Url 当从图像选择器中选择一个视频时你会得到它

func upload(file: URL, completion: @escaping ((_ url : URL?) -> ())) {

    let name = "\(yourFile Name)).mp4"
    do {
        let data = try Data(contentsOf: file)
        
        let storageRef =
    Storage.storage().reference().child("Videos").child(name)
        if let uploadData = data as Data? {
            let metaData = StorageMetadata()
    metaData.contentType = "video/mp4"
    storageRef.putData(uploadData, metadata: metaData
                , completion: { (metadata, error) in
        if let error = error {
            completion(nil)
        }
        else{
        storageRef.downloadURL { (url, error) in
               guard let downloadURL = url else {
           completion(nil)
           return
           }
           completion(downloadURL)
               }
            print("success")
                                }
                               })
        }
    }catch let error {
        print(error.localizedDescription)
    }

然后您将获得 Url 视频,现在 运行 firestore 代码并在字典中传递 Url。