无法将PDF文件上传到Firebase存储

时间:2020-10-11 22:10:22

标签: ios swift firebase pdf firebase-storage

我需要将PDF文件上传到Firebase Storage,并且可以与我的模拟器一起使用。但是,当我在真实设备上进行测试时,会遇到无限的加载循环...

我搜索了解决方案,并读取到必须以putData代替putFile,并添加一个metadata.contentType。 我遵循了这两个步骤,但是不幸的是,它仍然无法在真实设备上运行。

这是我的职能:

func uploadDocs(docsArray : [URL], completionHandler: @escaping ([String]) -> ()){
    
    var uploadedDocsUrlsArray = [String]()
    var uploadCount = 0
    let docsCount = docsArray.count
    
    for doc in docsArray{
        
        let docName = UUID().uuidString
        let storageRef = Storage.storage().reference().child("documents").child(docName)
        
        let metadata = StorageMetadata()
        metadata.contentType = "application/pdf"
        
        if let data = NSData(contentsOf: doc) as Data? {
            
            storageRef.putData(data, metadata: metadata) { (_, err) in
                
                if err != nil {
                    print(err!.localizedDescription)
                    return
                }
                
                storageRef.downloadURL { (url, err) in
                    
                    if err != nil {
                        print("Failed to download url:", err!)
                        return
                    } else {
                        
                        uploadedDocsUrlsArray.append(url?.absoluteString ?? "")
                        
                        uploadCount += 1
                        print("Number of documents successfully uploaded: \(uploadCount)")
                        if uploadCount == docsCount{
                            print("All documents are uploaded successfully")
                            completionHandler(uploadedDocsUrlsArray)
                        }
                    }
                    
                }
                
            }
            
        }
        
    }
    
}

0 个答案:

没有答案