2016-05-20 12 views
1

現在、githubのfirebase storageのクイックスタートの例を使用しようとしています。そのビューがロードされたら、単に画像をアップロードして別のビューにダウンロードするだけです。画像をストレージに保存することはできますが、画像をダウンロードしようとするとこのエラーが発生します。FireBaseストレージのダウンロードエラードメイン= FIRStorageErrorDomainコード= -13000

エラードメイン= FIRStorageErrorDomainコード= -13000 "不明なエラーが発生しました。>サーバーの応答を確認してください。" UserInfo = {バケット= **** appspot.com、>オブジェクト= 379f921d-a0bb-44b5-b04e-f21cc7953848/485423329797/IMG_0003.JPG、ResponseErrorDomain = NSCocoaErrorDomain、NSDestinationFilePath = /ファイル:/ユーザ/マーク**** **/Library/Developer/CoreSim> ulator/Devices/B600E8B9-95ED-4963-8282-9CDD43B7C25D/data /コンテナ/データ/アプリケーション/ 8FFB7EB0-0AFD-4E10-AAB6-D7340F8E3DDB/Documents/myimage.jpg、NSLocalizedDescription = An不明なエラーは、サーバの応答を確認してください。、NSUserStringVariant =( 移動 )、NSSourceFilePathErrorKey = /ユーザ/マーク****** /ライブラリ/開発/ CoreSimula> TOR /デバイス/ B600E8B9-95ED-4963-8282-発生しました> 9CDD43B7C25D/data /コンテナ/データ/アプリケーション/ 8FFB7EB0-0AFD-4E10-AAB6-> D7340F8E3DDB/tmp/CFNetworkDownload_5ZmlMp.tmp、NSFilePath =/Users/mark ******/Library/Developer/CoreSimulator/Devices/B6 > 00E8B9-95ED-4963-8282-> 9CDD43B7C25D/data/Containers/Data/Application/8FFB7EB0-0AFD-4E10-AAB6-> D7340F8E3DDB/tmp/CFNetworkDownload_5ZmlMp.tmp、NSUnderlyingErro R = 0x7f8036a682d0 {エラードメイン= NSPOSIXErrorDomainコード= 2>「そのようなファイルやディレクトリはありません」}、ResponseErrorCode = 4}

私は物事のFirebaseストレージ側のパスとファイルパスが正しいかチェックしました、それは単にイメージを取得するように見えない。

画像をダウンロードするためのコードがのviewDidLoadである()ダウンロードファイルのFUNC

override func viewDidLoad() { 
super.viewDidLoad() 
storageRef = FIRStorage.storage().reference() 

let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, 
    NSSearchPathDomainMask.UserDomainMask, true) 
let documentsDirectory = paths[0] 
let filePath = "file:\(documentsDirectory)/myimage.jpg" 
let storagePath = NSUserDefaults.standardUserDefaults().objectForKey("storagePath") as! String 

print("---------------") 
print(filePath) 
print("---------------") 
print(storagePath) 

// [START downloadimage] 
storageRef.child(storagePath).writeToFile(NSURL.fileURLWithPath(filePath), 
              completion: { (url, error) in 
    if let error = error { 
    print("Error downloading:\(error)") 
    self.statusTextView.text = "Download Failed" 
    return 
    } 
    self.statusTextView.text = "Download Succeeded!" 
    self.imageView.image = UIImage.init(contentsOfFile: filePath) 
}) 
// [END downloadimage] 

} }

答えて

5

ここでの問題は、実際にあなたのダウンロード・ファイル・パスであるように見える正しくありません(実際にスローされるエラーは、ネットワーク上の問題ではなくNSCocoaErrorDomainです。私たちのエラーメッセージはネットワーク固有のものであるようです)。

NSURL *tmpDirURL = [NSURL fileURLWithPath:NSTemporaryDirectory()]; 
NSURL *fileURL = [[tmpDirURL URLByAppendingPathComponent:@"hello"] URLByAppendingPathExtension:@"txt"]; 

私が見る主な問題は、私は、ファイルのURLは、私は一般的にまあまあのようなのようなローカルファイルを作成するfile:///Users/...

のように見えることになっていると信じている間、あなたのファイルパスが/file:/Users/...のように見えるということですNSHomeDirectoryForUserを使用して、ユーザーのベースディレクトリを取得することもできます。

関連する問題