我想从FireBase的UploadTask.AddonProgressListener
方法获取下载Url。如何使用以下代码获取下载Url?
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
对象。请参阅以下详细信息。
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
}
});
}
});
删除了不推荐使用的StorageMetadata.getDownloadURL()和UploadTask.TaskSnapshot.getDownloadURL()方法。若要获取当前的下载URL,请使用StorageReference.getDownloadUr()。
因此,现在当对StorageReference对象调用getDownloadUrl()时,它返回task
对象,而不再是Uri对象。
请记住,如果您的设备无法到达Firebase存储后端,则不会调用成功侦听器或失败侦听器(如果您打算使用它)。Success/Failure侦听器仅在数据提交到Firebase服务器或被Firebase服务器拒绝时才会被调用。
有没有办法从Firebase存储中获取所有的URL? 我知道有从firebase数据库获取URL的方法,比如将firebase存储文件的URL存储在firebase实时数据库中,然后从它获取URL。但是我正在从图片中显示的按钮上传图片,并且想要所有那些上传图片的URL直接从firebase存储路径像... 用它就像... 如有任何帮助,我们将不胜感激。
在Java Spring Boot中,我可以使用firebase admin sdk获取已签名的url。 但是我需要在JavaSpring Boot中获得下载url而不是签名url,如下面的代码所示。 我无法在JavaSpring中添加Firebase存储sdk,只能移动。 https://mvnrepository.com/artifact/com.google.firebase/firebas
我知道在谷歌云存储中,你可以使用签名的URL,这是有时间限制的(还是不做真正的授权)。但是我在Firebase存储文档中没有看到任何关于的内容。我在关于Firebase存储的文章中看到过它,但从未直接在Firebase的文档中看到过。 据我所知,没有办法对访问Firebase存储文件进行真正的用户授权。请告诉我我错了。
下面是我得到的控制台输出和错误: 下面是我按下Get Images按钮后的控制台输出,您可以看到图像的url为:
在Android中使用和iOS中使用下载存储文件,是否仍然在暗中使用下载uri方法,即在uri末尾使用不可猜测的标记? 我的要求禁止我们向世界公开这样的URL,所以问题是: null