gpt4 book ai didi

java - 如何从 Firebase 存储获取下载网址?

转载 作者:行者123 更新时间:2023-12-01 18:14:50 25 4
gpt4 key购买 nike

我想从 Firebase 的 uploadTask.addOnProgressListener 方法获取下载网址。如何使用以下代码获取下载网址?

    UploadTask uploadTask = storageRef.putBytes(data);

uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>()
{
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot)
{
Log.d("aaaaasessin",""+taskSnapshot.getTask().getResult());
}
});

我使用了 taskSnapshot.getTask().getResult() 但这不起作用。

最佳答案

2019 年 8 月 22 日编辑:

Android SDK 中的 StorageReference 类最近添加了一个名为 list() 的新方法。 .

要解决此问题,您需要循环 ListResult 并调用 getDownloadUrl() 来获取每个文件的下载 URL。请记住,getDownloadUrl() 方法是异步的,因此它返回一个 Task 对象。详情请参阅下文。我什至写了一篇关于这个主题的文章,名为:

<小时/>

为了获取下载网址,您需要使用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
}
});
}
});

Firebase release notes中所示2018年5月23日提到:

Cloud Storage version 16.0.1

Removed the deprecated StorageMetadata.getDownloadUrl() and UploadTask.TaskSnapshot.getDownloadUrl() methods. To get a current download URL, use StorageReference.getDownloadUr().

现在打电话 getDownloadUrl() 时在StorageReference上它返回一个 Task 对象,而不再是一个 Uri 对象。

另请记住,如果您的设备无法到达 Firebase Storage 后端,则不会调用成功监听器或失败监听器(如果您打算使用它)。仅当数据提交至 Firebase 服务器或被 Firebase 服务器拒绝后,才会调用成功/失败监听器。

关于java - 如何从 Firebase 存储获取下载网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60395518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com