猿问
下载APP

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

如何从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()但这行不通。


慕哥9229398
浏览 68回答 2
2回答

潇潇雨雨

为了获得下载url,您需要使用addOnSuccessListener,如下代码行所示:uploadTask.addOnSuccessListener(new&nbsp;OnSuccessListener<UploadTask.TaskSnapshot>()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;@Override &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;onSuccess(UploadTask.TaskSnapshot&nbsp;taskSnapshot)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;storageRef.getDownloadUrl().addOnSuccessListener(new&nbsp;OnSuccessListener<Uri>()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@Override &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;onSuccess(Uri&nbsp;uri)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;url&nbsp;=&nbsp;uri.toString(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Do&nbsp;what&nbsp;you&nbsp;need&nbsp;to&nbsp;do&nbsp;with&nbsp;url &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}); &nbsp;&nbsp;&nbsp;&nbsp;}});就像在火基释放说明2018年5月23日,有人提到:云存储版本16.0.1删除不推荐的StorageMetadata.getDownloadUrl()和UploadTask.askSnapshot.getDownloadUrl()方法。要获得当前下载URL,请使用StorageReference.getDownloadUr()。所以现在打电话的时候getDownloadUrl()在.上存储参考对象返回一个Task对象和不URI对象了。还请记住,如果设备无法到达Firebase存储后端,则无论是成功侦听器还是失败侦听器(如果您打算使用它)都不会被调用。只有当数据被提交到Firebase服务器或拒绝时,才会调用成功/失败侦听器。

摇曳的蔷薇

onSuccsess()不是在运行时触发,而是不幸地使用addOnSuccessListener你不能覆盖onSuccess()方法获取下载url。这是有意义的,因为只有当您从服务器获得响应时才能获得下载url(onSuccess被触发)。只要任务未完成,您就无法获得下载url,对吗?
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答