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

2022-09-02 02:24:37

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

我收到以下错误:

enter image description here

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

现在,如何获取文件 URL?

任何获取文件下载链接的方法?


答案 1

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

Firebase Google Documentation

//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());
        }
    }
});

另一个解决方案!

它比谷歌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());
            }
        });
    }
});

答案 2

该方法已在版本16.0.1上弃用(请查看Firebase发行说明),因此您必须使用

StorageReference.getDownloadUrl()

如果您想在上传文件后获取它们,则必须在此处查看其文档。它已更新。


推荐