[英]Coil 1.3.2 : Loading image from firebase not working - "No fetcher supports: gs://"
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
)
当我使用来自 web 的一些随机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)
}
任何帮助将不胜感激。 谢谢!
编辑:在挖掘更多并尝试不同版本之后,似乎我需要创建一个自定义提取器来使用 a.webp 格式,我不知道为什么它适用于ImageView
但不适用于Composable Image
。 是否有任何链接可以指导我如何为线圈创建自定义fethcher
? 谢谢你。
以gs://
开头的 URL 是 Google Cloud Storage 的原生 URL 格式,许多常见库无法识别 - 其中 Coil 显然是其中之一。
要显示数据,您有两种选择:
https://
开始,并将其传递给 Coil。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.