2016-05-26 6 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) 
    } 
} 
} 

ПРИНЦ:

ERROR - Дополнительный (Error Domain = FIRStorageErrorDomain Code = -13000 "Произошла неизвестная ошибка, пожалуйста, проверьте ответ сервера." UserInfo = {ResponseErrorDomain = NSCocoaErrorDomain, объект = testAudio /audio_test.m4a, NSURL =/Пользователи/Ben/Library/Developer/CoreSimulator/Devices/02AF50F2-E9BE-4EED-A3BE-485D63264731/data/Контейнеры/Данные/Приложение/31BDED56-0135-4E70-943E-F897080768D6/Документы/, bucket = mydevslopesapp.appspot.com, ResponseErrorCode = 518, NSLocalizedDescription = Произошла неизвестная ошибка, пожалуйста, проверьте ответ сервера.})

ответ

1

Это не ошибка хранилища, на самом деле это проблема с файлом, который вы пытаетесь написать.

Похоже, что URLByAppengingString должно быть fileURLWithPath, чтобы получить URL-адрес файловой системы (по NSFileManager creating directory error 518 NSFileWriteUnsupportedSchemeError).

Долгосрочный нам нужно выловить это и обслуживать его как «видеть соответствующую ошибку», а не «читать сетевую реакцию».

+0

ahhh работал отлично, спасибо! Если вы являетесь частью команды Firebase, может быть полезно включить это в документы :) (для тех из нас, кто не слишком опытен) –

+0

В этом примере в настоящее время используется «NSURL (String:« https://firebase.google.com/docs/storage/ios/download-files#download_to_a_local_file –

+1

Это будет работать, потому что у него есть схема 'file: //', которая идентифицирует его как локальный файл, приведенный выше пример не создает файл URL-адрес просто создает URL-адрес (без схемы). 'FileURLWithPath' является просто сокращением для создания NSURL с помощью схемы' file: // '(см. Http://stackoverflow.com/questions/16097404/what-is-difference -between-urlwithstring-и-fileurlwithpath-оф-NSURL) –

Смежные вопросы