Как получить URL загрузки с StorageReference - PullRequest
0 голосов
/ 14 декабря 2018

В моем проекте я могу getDownloadUrl() после загрузки файла

ref.putFile(imgUri).continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {

                @Override
                public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {

                    if (!task.isSuccessful()) {
                        if(task.getException() != null) {
                            throw task.getException();
                        }
                    }

                    return ref.getDownloadUrl();

                }
            }) ...

Однако, так как я изменяю размер изображения с помощью облачной функции и повторно загружаю его в корзину, загрузкаurl изменится, поэтому единственный способ узнать местоположение изображения - через StorageReference.Как я могу getDownloadUrl() из StorageReference?Я пробовал ref.getDownloadUrl().addOnSuccessListener, который не срабатывает, а ref.getDownloadUrl().addOnCompleteListener и task.getResult() выдает ошибку.

1 Ответ

0 голосов
/ 14 декабря 2018

Попробуйте использовать это: я пытался сохранить изображения

Вы можете получить URL для загрузки от task.getResult (). ToString ()

    final StorageReference ref = FirebaseStorage.getInstance().getReference().child("images").child(imageName)
uploadTask = ref.putBytes(data);

Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
    @Override
    public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
        if (!task.isSuccessful()) {
            throw task.getException();
        }

        // Continue with the task to get the download URL
        return ref.getDownloadUrl();
    }
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
    @Override
    public void onComplete(@NonNull Task<Uri> task) {
        if (task.isSuccessful()) {
            Uri downloadUri = task.getResult();
            String URL = task.getResult().toString();

        } else {
            // Handle failures
            // ...
        }
    }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...