You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android端Firebase Storage图片上传成功后如何获取下载URL?

获取Firebase Storage图片下载URL的两种方法

嘿,我看你已经成功实现了图片上传功能,现在就差拿到下载URL这一步啦,给你分享两个实用的解决办法:

方法一:在上传成功回调中直接获取

在你的addOnSuccessListener里,其实可以通过taskSnapshot.getStorage().getDownloadUrl()来获取下载链接,但要注意这个方法返回的是Task<Uri>——因为获取URL是异步操作,所以得额外加个监听来拿到最终结果。

修改后的成功回调代码如下:

.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
        progressDialog.dismiss();
        Log.e(TAG,"metaData :"+taskSnapshot.getMetadata().getPath());
        
        // 新增获取下载URL的逻辑
        taskSnapshot.getStorage().getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {
                String downloadUrl = uri.toString();
                Log.e(TAG, "图片下载URL:" + downloadUrl);
                // 这里可以把URL存到Firestore或者本地,方便后续使用
            }
        }).addOnFailureListener(new OnFailureListener() {
            @Override
            public void onFailure(@NonNull Exception e) {
                Log.e(TAG, "获取下载URL失败:" + e.getMessage());
            }
        });
    }
})

方法二:通过StorageReference随时获取

如果之后你需要再次获取同一张图片的下载URL(比如从数据库里拿到了存储路径),直接通过对应的StorageReference调用getDownloadUrl()就行:

// 假设你已经有了目标图片的StorageReference,比如之前的mountainsRef
mountainsRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
    @Override
    public void onSuccess(Uri uri) {
        String downloadUrl = uri.toString();
        Log.e(TAG, "图片下载URL:" + downloadUrl);
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception e) {
        Log.e(TAG, "获取下载URL失败:" + e.getMessage());
    }
});

小提醒

  • 要确保你的Firebase Storage规则允许读取该文件(测试阶段可以暂时设为公开读取,但正式环境一定要配置合适的权限)
  • getDownloadUrl()是异步操作,必须通过监听回调拿结果,不能直接同步取值哦

内容的提问来源于stack exchange,提问作者Android_chirag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 09:10:47