2016-05-26 36 views
0

新しいFirebaseストレージでの基本的なアップロード/ダウンロードの作業をしようとしています。アップロードは正常に機能しましたが、ファイルをデバイスにダウンロードできません。誰かが私が間違っていることにいくつかの光を当ててください。ありがとう!Firebaseストレージからダウンロードする際のエラー

func downloadAudio() { 

let storageRef = FIRStorage.storage().reference() 

let pathReference = storageRef.child("testAudio/audio_test.m4a") 

let localURL = getDocumentsDirectory().URLByAppendingPathComponent("audio_test2.m4a") 

let downloadTask = pathReference.writeToFile(localURL) { (URL, error) -> Void in 
    if (error != nil) { 

    print("ERROR - ", error.debugDescription) 
    } else { 
    print("SUCCESS - ", URL) 
    } 
} 
} 

PRINTS:

ERROR - オプション(エラードメイン= FIRStorageErrorDomainコード= -13000 "不明なエラーが発生し、サーバの応答を確認してください" のUserInfo = {ResponseErrorDomain = NSCocoaErrorDomain、オブジェクト= testAudio /Audio_test.m4a、NSURL =/Users/Ben/Library/Developer/CoreSimulator/Devices/02AF50F2-E9BE-4EED-A3BE-485D63264731/data /コンテナ/データ/アプリケーション/ 31BDED56-0135-4E70-943E-F897080768D6/Documents/、bucket = mydevslopesapp.appspot.com、ResponseErrorCode = 518、NSLocalizedDescription =不明なエラーが発生しました。サーバーの応答を確認してください})

答えて

1

これはストレージエラーではなく、実際に書き込もうとしているファイルの問題です。

ファイルシステムURL(NSFileManager creating directory error 518 NSFileWriteUnsupportedSchemeError)を取得するには、URLByAppengingStringfileURLWithPathである必要があります。

長期的には、これを釣り上げて、「ネットワークの応答を読む」ではなく「関連するエラーを表示」する必要があります。

+0

ああ、完璧に、ありがとう!あなたがFirebaseチームの一員であれば、これをdocsに含めると便利かもしれません:)(経験の浅い人のために) –

+0

この例では、現在 "NSURL(String:" https: /firebase.google.com/docs/storage/ios/download-files#download_to_a_local_file –

+1

これはローカルファイルとして識別する 'file://'体系を持っているので動作します。上記の例ではファイルを作成しません'fileURLWithPath'は' file:// 'スキームでNSURLを作成するだけの略です(http://stackoverflow.com/questions/16097404/what-is-differenceを参照してください)。 -with-urlwithstring-and-fileurlwithpath-of-nsurl) –

関連する問題