在 Android Firebase 存储中上传文件后如何获取文件下载 Url? getDownloadUrl() 不工作

新手上路,请多包涵

在我的新 android firebase 项目中,我使用 com.google.firebase:firebase-storage:16.0.1 库。

我收到以下错误:

在此处输入图像描述

我打开了另一个项目,它有库 firebase-storage:15.0.2taskSnapshot.getDownloadUrl(); 在那个项目上工作。但是在使用最新的依赖库后它不起作用。

现在,如何获取文件 URL?

有什么方法可以获取文件下载链接?

原文由 Sheikh Hasib 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 631
2 个回答

我为我的问题找到了 2 个解决方案。

Firebase 谷歌文档

 //add file on Firebase and got Download Link
filePath.putFile(imageUri).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();
        }
        return filePath.getDownloadUrl();
    }
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
    @Override
    public void onComplete(@NonNull Task<Uri> task) {
        if (task.isSuccessful()){
            Uri downUri = task.getResult();
            Log.d(TAG, "onComplete: Url: "+ downUri.toString());
        }
    }
});

另一个解决方案!

它比 google Firebase 文档 更简单、更小,我将使用它:

 filePath.putFile(imageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
        filePath.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {
                Log.d(TAG, "onSuccess: uri= "+ uri.toString());
            }
        });
    }
});

原文由 Sheikh Hasib 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题