当前位置: 首页 > 知识库问答 >
问题:

如何从Firebase存储获取下载url?

简成仁
2023-03-14

我想从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(),但这不起作用。

共有1个答案

谭泳
2023-03-14

编辑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