Android Glide:无法加载 Firebase 存储资源

时间:2021-02-28 08:57:40

标签: java android firebase firebase-storage android-glide

我正在尝试在 Firebase Storage 中存储的 CircularImageView 中显示图像,但是 glide 给了我这个错误:

W/Glide: Load failed for gs://project-2d8i4.appspot.com/pictures/3HnfQSeBladDsD9sPEcKrhxJ6CB2 with size [1200x1200]
    class com.bumptech.glide.load.engine.GlideException: Failed to load resource

图片在 Firestore 中保存为:

"gs://project-2d8i4.appspot.com/pictures/3HnfQSeBladDsD9sPEcKrhxJ6CB2"

绑定到图像视图 (uri = "gs://project-2d8i4.appspot.com/pictures/3HnfQSeBladDsD9sPEcKrhxJ6CB2")

fun CircularImageView.bindProfilePicture(uri: String?) {
    Glide
        .with(this)
        .load(uri)
        .into(this)
}

glide 的依赖:

implementation 'com.github.bumptech.glide:glide:4.12.0'

没有任何帖子中的答案对我有任何帮助。我希望有人可以帮助我。谢谢。

2 个答案:

答案 0 :(得分:2)

以下网址:

gs://project-2d8i4.appspot.com/pictures/3HnfQSeBladDsD9sPEcKrhxJ6CB

确实是存储在 Cloud Storage 中的文件。不幸的是,这个 URL 不能被 Glide 识别,因为它不是一个有效的 URL。要解决此问题,您需要获取“下载 URL”而不是以 gs://... 开头的 URL。

要获取实际下载地址,请参阅官方文档:

以及我在以下帖子中的回答:

答案 1 :(得分:1)

为了避免注释中提到的缓存,您可以将这两个与 glide 调用一起使用。

diskCacheStrategy(DiskCacheStrategy.NONE) 
.skipMemoryCache(true)

选中 here 以使用 glide 从 firebase url 下载。