首页 > 解决方案 > 如何返回上传图片的 URL

问题描述

尝试使用此文档获取上传到 Firebase 存储中的图像的 URL ,但没有关于如何从方法返回downloadUri值的信息。Task.continueWithTask

甚至方法文档也无助于理解。

从文档中引用,没有解释如何获取此 URL:

上传文件后,您可以通过调用 StorageReference 上的 getDownloadUrl() 方法获取下载文件的 URL:

final StorageReference ref = storageRef.child("images/mountains.jpg");
        uploadTask = ref.putFile(file);

        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();
                } else {
                    // Handle failures
                    // ...
                }
            }
        });

标签: androidfirebasefirebase-storage

解决方案


我有一段时间没有使用 Firebase,但我以前的做法是分配 aSuccessListenerOnCompleteListener在调用之后ref.getDownloadUrl()

例子

ref.getDownloadUrl().addOnSuccessListener(url -> {
    ...
});

推荐阅读