线圈:从 firebase 加载图像不起作用 - 无法获取数据。不支持 fetcher

z.g*_*g.y 3 android firebase-storage android-jetpack-compose coil android-compose-image

 Image(
        modifier = Modifier.size(100.dp).padding(16.dp),
        painter = rememberImagePainter(
            ImageRequest.Builder(LocalContext.current)
 //                    .data("https://media-cldnry.s-nbcnews.com/image/upload/t_fit-760w,f_auto,q_auto:best/streams/2013/March/130326/1C6639340-google-logo.jpg")
                .data(Firebase.storage.getReference("<Redacted>"))
                .crossfade(false)
                .listener(object : ImageRequest.Listener {

                    override fun onError(request: ImageRequest, throwable: Throwable) {
                        super.onError(request, throwable)
                        Log.e("CoilRequest", "${throwable.message}")
                    }
                })
                .placeholder(getShimmerPlaceholder())
                .build()
        ),
        contentDescription = "description",
        contentScale = ContentScale.Fit
    )
Run Code Online (Sandbox Code Playgroud)

当我使用来自网络的随机图像时,注释代码正在工作image,但是当我使用 firebase 中的托管图像时,它不起作用compose,并且我正在error从线圈进行回调

Unable to fetch data. No fetcher supports: gs://

无论其工作原理如何,都使用相同的方法view

inline fun ImageView.load(data: data: StorageReference, builder: ImageRequest.Builder.() -> Unit) : Disposable {
    val loadRequest = ImageRequest.Builder(context)
                      .data(data)
                      .target(this@load)
                      .apply(builder).build()
          return FireCoil.loader(context).enqueue(loadRequest)
}
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?谢谢!

Fra*_*len 8

以 开头的 URLgs://是 Google Cloud Storage 的本机 URL 格式,许多常见库无法识别 - Coil 显然就是其中之一。

要显示数据,您有两种选择: