Не удалось получить 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: задача еще не завершена"


person bbenis    schedule 21.05.2016    source источник


Ответы (1)


Вы можете получить 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 для загрузки данных по URL-адресу.

person Frank van Puffelen    schedule 22.05.2016
comment
Спасибо за быстрый ответ, я действительно пытался это сделать, но получаю ошибку в OnFailureListener - класс «Анонимный класс, полученный из OnFailureListener» должен быть либо объявлен абстрактным, либо реализован абстрактным методом «onFailure (исключение» в «OnFailureListener». Я совершенно новый для Firebase и кодирования в целом, и я хотел бы знать, чего мне не хватает. - person bbenis; 22.05.2016
comment
Вместо Throwable throwable в качестве аргумента для onFailure следует указать исключение Exception. - person Benjamin Wulfe; 22.05.2016
comment
Кроме того, причина, по которой вы получили исходное исключение, заключается в том, что метод является асинхронным и должен вызываться так, как это сделал Фрэнк. - person Benjamin Wulfe; 22.05.2016
comment
@BenjaminWulfe Хороший улов в обоих случаях. Я сделаю заметку, чтобы обновить документацию. - person Frank van Puffelen; 23.05.2016
comment
У меня есть файл .sqlite из firebase. как скачать его в случае успеха? @FrankvanPuffelen - person urvi joshi; 20.07.2017