在Android Firebase存储中上传文件后如何获取文件下载Url? getDownloadUrl()不起作用 [英] After upload a file in Android Firebase Storage how get the file download Url? getDownloadUrl() not working
问题描述
在我的新android firebase项目中,我使用了 com.google.firebase:firebase-storage:16.0.1
库。
In my new android firebase project, I used com.google.firebase:firebase-storage:16.0.1
library.
我收到以下错误:
我打开了另一个拥有库 firebase-storage的项目:15.0.2
和 taskSnapshot.getDownloadUrl();
从事该项目的工作。但在使用最新的依赖库后,它无法正常工作。
I opened another project that had library firebase-storage:15.0.2
and taskSnapshot.getDownloadUrl();
which worked on that project. but after using latest dependency library it's not working.
现在,我如何获取文件URL?
Now, how can I get the file URL?
以任何方式获取文件下载链接?
先谢谢!
推荐答案
我找到了解决问题的方法。
I Found 2 solution of my problem.
//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文档更容易和更小,我将使用它:
It's more easy and small than google Firebase documentation and I'll use it:
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());
}
});
}
});
这篇关于在Android Firebase存储中上传文件后如何获取文件下载Url? getDownloadUrl()不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!