ios - 无法将 PDF 文件上传到 Firebase 存储
问题描述
我需要将 PDF 文件上传到 Firebase 存储,并使用我的模拟器。但是当我在真实设备上测试时,我得到一个无限加载循环......
我搜索了解决方案,并读到我必须使用 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)
}
}
}
}
}
}
}
解决方案
推荐阅读
- javascript - 如何在 webview 中隐藏网站的元素
- android - 意图过滤器在 Android Lollipop 上不起作用
- mql4 - MQL4 挂单错误 # 130
- php - 如何覆盖 Laravel 包的 JSON 翻译?
- airflow - 获取有关 Airflow on_failure_callback 上下文的异常详细信息
- mongodb - 在 kubernetes 中运行 mongodb - azure aks 失败
- object-recognition - 在预加载的点云上重新定位智能手机
- javascript - 以编程方式访问 JavaScript 中的字体规范
- javascript - 将多个数组合并为单个数组
- c++ - 函数返回的未来