0

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)
        }
    }
}
4

1 に答える 1