通过传递Firebase存储参考

时间:2019-06-05 11:52:10

标签: android firebase firebase-storage

是否可以使用Firebase存储参考获取下载uri?

这是与this question

不同的问题

上述问题是通过上传图片获取图片网址。

我想尝试通过提供存储中的图像引用来获取图像下载URI的方法。

我尝试了一些事情:

storageReference.child("images/download.jpg").downloadUrl.addOnSuccessListener { uri ->
                if (uri != null){
                    Log.e("url", uri.toString())
                }
            }

图片:

image

它显示错误(我知道不存在类似的东西):

  

E / StorageException:{“错误”:{“代码”:404,“消息”:“不   找到了。无法获取对象”,“状态”:“ GET_OBJECT”}}       java.io.IOException:{“错误”:{“代码”:404,“消息”:“未找到。无法获取对象”,“状态”:“ GET_OBJECT”}}           com.google.firebase.storage.network.NetworkRequest.parseResponse(com.google.firebase:firebase-storage @@ 17.0.0:455)           com.google.firebase.storage.network.NetworkRequest.parseErrorResponse(com.google.firebase:firebase-storage @@ 17.0.0:435)           在com.google.firebase.storage.network.NetworkRequest.processResponseStream(com.google.firebase:firebase-storage @@ 17.0.0:426)           com.google.firebase.storage.network.NetworkRequest.performRequest(com.google.firebase:firebase-storage @@ 17.0.0:280)           com.google.firebase.storage.network.NetworkRequest.performRequest(com.google.firebase:firebase-storage @@ 17.0.0:294)           在com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(com.google.firebase:firebase-storage @@ 17.0.0:70)           在com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(com.google.firebase:firebase-storage @@ 17.0.0:62)           com.google.firebase.storage.GetDownloadUrlTask​​.run(com.google.firebase:firebase-storage @@ 17.0.0:74)           在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)           在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:641)           在java.lang.Thread.run(Thread.java:764)

我只是在寻找显示图像,而不使用glide库。所以我正在寻找图像uri以显示图像。

1 个答案:

答案 0 :(得分:2)

尝试一下:

StorageReference storageReference = FirebaseStorage.getInstance().getReferenceFromUrl("storage ref url in string");
storageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
            @Override
            public void onSuccess(Uri uri) {
                //do your stuff- uri.toString() will give you download URL\\
            }
        });

或直接使用StorageReference进行初始化。