aja*_*hal 6 java android firebase firebase-storage
我想从uploadTask.addOnProgressListenerFirebase 的方法中获取下载网址。如何使用以下代码获取下载网址?
UploadTask uploadTask = storageRef.putBytes(data);
uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>()
{
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot)
{
Log.d("aaaaasessin",""+taskSnapshot.getTask().getResult());
}
});
Run Code Online (Sandbox Code Playgroud)
我用过,taskSnapshot.getTask().getResult()但这不起作用。
Ale*_*amo 11
2019 年 8 月 22 日编辑:
最近在 Android SDK 的 StorageReference 类中添加了一个名为list()的新方法。
要解决这个问题,您需要遍历ListResult和 调用getDownloadUrl()以获取每个文件的下载 URL。记住该getDownloadUrl()方法是异步的,因此它返回一个Task对象。请参阅下面的详细信息。
为了获取下载 url,您需要使用addOnSuccessListener,就像在以下代码行中一样:
uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
storageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
String url = uri.toString();
//Do what you need to do with url
}
});
}
});
Run Code Online (Sandbox Code Playgroud)
正如在2018 年 5 月 23 日的Firebase 发行说明中提到的那样:
云存储版本 16.0.1
删除了已弃用的 StorageMetadata.getDownloadUrl() 和 UploadTask.TaskSnapshot.getDownloadUrl() 方法。要获取当前下载 URL,请使用 StorageReference.getDownloadUr()。
所以现在当在StorageReference对象上调用getDownloadUrl() 时,它返回一个对象而不是Uri 对象。Task
还请记住,如果您的设备无法访问 Firebase 存储后端,则不会调用成功侦听器和失败侦听器(如果您打算使用它)。只有在数据提交到 Firebase 服务器或被 Firebase 服务器拒绝后,才会调用成功/失败侦听器。
| 归档时间: |
|
| 查看次数: |
5372 次 |
| 最近记录: |