PDF ファイルを選択して Firebase Storage にアップロードしようとしてUIDocumentPickerViewController
いますが、残念ながら、コンソールで次のように誤って成功し続けています。
私が間違っているかもしれないことを誰かが知っていますか? 前もって感謝します。
選択: file:///private/var/mobile/Library/Mobile%20Documents/com~apple~CloudDocs/Desktop/Documents/document.pdf
Coordinator going away Optional(Error Domain=FIRStorageErrorDomain Code=-13010 "オブジェクトのアップロード/ドキュメントが存在しません。"
UserInfo={object=uploads/documents, ResponseBody={ "エラー": { "コード": 404, "メッセージ": "見つかりません。オブジェクトを取得できませんでした", "ステータス": "GET_OBJECT" } },
バケット = name-webapp.appspot.com、データ = {長さ = 115、バイト = 0x7b0a2020 22657272 6f72223a 207b0a20 ... 54220a20 207d0a7d }、data_content_type = アプリケーション/json; charset=UTF-8、NSLocalizedDescription=オブジェクトのアップロード/ドキュメントが存在しません。、ResponseErrorDomain=com.google.HTTPStatus、ResponseErrorCode=404})
uploadImageData: false、なし
ドキュメントピッカー
class Coordinator: NSObject, UIDocumentPickerDelegate {
var parent: FilePicker
init( parent1: FilePicker) {
self.parent = parent1
}
func documentPicker(_ controller: UIDocumentPickerViewController, didPickDocumentsAt urls: [URL]) {
print("Selected: \(urls.first!)")
let localFile = urls.first!
// User reference URL for home/roomIndex/tenancy
// Pass to FirestoreManager
let firestoreManager = FirestoreManager()
firestoreManager.uploadFile(localFile: localFile, serverFileName: "filename.pdf") { (isSuccess, url) in
print("uploadImageData: \(isSuccess), \(url ?? "none")")
}
}
func documentPickerWasCancelled(_ controller: UIDocumentPickerViewController) {
print("Cancelled")
}
deinit {
print("Coordinator going away")
}
}
ファイアベース
func uploadFile(localFile: URL, serverFileName: String, completionHandler: @escaping (_ isSuccess: Bool, _ url: String?) -> Void) {
let storage = Storage.storage()
let storageRef = storage.reference()
// Create a reference to the file you want to upload
let directory = "uploads"
let fileRef = storageRef.child(directory).child("documents")
_ = fileRef.putFile(from: localFile, metadata: nil) { metadata, error in
fileRef.downloadURL { (url, error) in
guard let downloadURL = url else {
// Uh-oh, an error occurred!
print("\(error)")
completionHandler(false, nil)
return
}
// File Uploaded Successfully
completionHandler(true, downloadURL.absoluteString)
}
}
}