为了账号安全,请及时绑定邮箱和手机立即绑定

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

/ 猿问

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

慕哥9229398 2019-07-17 18:51:17

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

我想从uploadTask.addOnProgressListener火基法如何使用以下代码获得下载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()但这行不通。


查看完整描述

2 回答

?
潇潇雨雨

为了获得下载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
            }
        });
    }});

就像在火基释放说明2018年5月23日,有人提到:

云存储版本16.0.1

删除不推荐的StorageMetadata.getDownloadUrl()和UploadTask.askSnapshot.getDownloadUrl()方法。要获得当前下载URL,请使用StorageReference.getDownloadUr()。

所以现在打电话的时候getDownloadUrl()在.上存储参考对象返回一个Task对象和URI对象了。

还请记住,如果设备无法到达Firebase存储后端,则无论是成功侦听器还是失败侦听器(如果您打算使用它)都不会被调用。只有当数据被提交到Firebase服务器或拒绝时,才会调用成功/失败侦听器。


查看完整回答
反对 回复 2019-07-17
?
摇曳的蔷薇

onSuccsess()不是在运行时触发,而是不幸地使用addOnSuccessListener你不能覆盖onSuccess()方法获取下载url。这是有意义的,因为只有当您从服务器获得响应时才能获得下载url(onSuccess被触发)。只要任务未完成,您就无法获得下载url,对吗?

查看完整回答
反对 回复 2019-07-17

添加回答

回复

举报

0/150
提交
取消
意见反馈 邀请有奖 帮助中心 APP下载
官方微信