2017-01-24 2 views
0

Привет пытаюсь загрузить .zip файл из firebase хранения с использованием кодапроизошло исключение во время загрузки файла в Firebase

FirebaseStorage httpsReference = FirebaseStorage.getInstance(); 
StorageReference reference = httpsReference.getReferenceFromUrl(Constants.FIREBASE_ST_URL); 
StorageReference referenceNew = reference.child("ImageSets").child(post.get("SetName") + ".zip"); 
Log.d("log_tag", "ZIP URL referenceNew : " + referenceNew.toString()); 
//**this is log result** gs://memory-matcch.appspot.com/ImageSets/set_2.zip 

referenceNew.getFile(file).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() { 
     @Override 
     public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) { 
      Log.d("log_tag", "ZIP FILE onSuccess : " + Uri.fromFile(file) + "\nPath : " + file.getPath() + "\nAbsolute : " + file.getAbsolutePath()); 

    }).addOnFailureListener(new OnFailureListener() { 
     @Override 
     public void onFailure(@NonNull Exception e) { 

     } 
    }); 

и это основание правила пожарной enter image description here

это firebase хранение enter image description here

и I Я получаю эту ошибку

Exception occurred during file download 
java.io.IOException: open failed: ENOENT (No such file or directory) 
at java.io.File.createNewFile(File.java:939) 
at com.google.firebase.storage.FileDownloadTask.run(Unknown Source) 
at com.google.firebase.storage.StorageTask$8.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
at java.lang.Thread.run(Thread.java:818) 
Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory) 
at libcore.io.Posix.open(Native Method) 
at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186) 
at java.io.File.createNewFile(File.java:932) 
at com.google.firebase.storage.FileDownloadTask.run(Unknown Source)  
at com.google.firebase.storage.StorageTask$8.run(Unknown Source)  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)  
at java.lang.Thread.run(Thread.java:818)  

Я хочу сделать это без входа в огонь базы, как я муравей, который пользователь может загрузить ZIP без входа в систему также.

ответ

1

.getFile(file), похоже, ваша проблема - что такое file? Это загружает zip в локальную файловую систему, и появляется, как указано в исключении: «Нет такого файла или каталога».

Загрузить getBytes() или getStream() для загрузки в память или выбрать действительный файл для записи.

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