2016-05-21 2 views
6

Я пытаюсь получить URI изображения, который хранится в хранилище Firebase, для его обработки с использованием другого метода. Я использую следующее:Невозможно получить URI из ссылки на хранилище на Firebase

FirebaseStorage storage = FirebaseStorage.getInstance(); 
    StorageReference storageRef = storage.getReferenceFromUrl(this.getString(R.string.storage_path)); 
    Uri uri = storageRef.child("groups/pizza.png").getDownloadUrl().getResult(); 

и получаю ошибку «java.lang.IllegalStateException: Задача еще не завершена»

ответ

9

Вы можете получить загрузки URL для файла с:

storageRef.child("groups/pizza.png").getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() { 
    @Override 
    public void onSuccess(Uri uri) { 
     // TODO: handle uri 
    } 
}).addOnFailureListener(new OnFailureListener() { 
    @Override 
    public void onFailure(@NonNull Exception exception) { 
     // Handle any errors 
    } 
}); 

См. Firebase documentation for downloading data via a URL.

+0

Спасибо за быстрый ответ, Я действительно пробовал это, но получение ошибки в «OnFailureListener» - класс «Анонимный класс, полученный из OnFailureListener», должен либо быть объявлен абстрактным, либо реализован абстрактный метод «onFailure (Exception» в «OnFailureListener» ' Я совершенно новичок в Firebase и кодировании в целом, и мне было бы интересно узнать, чего я не вижу. – bbenis

+0

Вместо «Throwable throwable», который должен сказать «исключение исключения» как аргумент для onFailure. –

+0

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

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