我可以成功使用带滑动的字符串url来获取我想要的图像:
glideVariable!!.loadImageUrl("https://firebasestorage.googleapis.com/v0/b/healthandchocolate-46f3d.appspot.com/o/cookies%2FcookiesImg1.jpg?alt=media&token=63721d7d-207e-441c-9387-14dced13d3c8")
但是当我尝试使用存储在变量中的相同URL时,图像不会加载:
glideVariable!!.loadImageUrl(recipeArray[1].recipeImage.toString())
我在Log.d
上做了一个recipeArray[1].recipeImage.toString()
,它确实包含了与我的第一个例子相同的url,使用原始字符串数据。
我使用了escape命令将变量封装在引号中,如下所示:
glideVariable!!.loadImageUrl("${recipeArray[1].recipeImage.toString()}")
但它仍然无效。我也尝试把它作为URL
和URI
,但仍然没有。有任何想法吗?滑行只能使用原始字符串数据吗?
更新我注意到recipeArray[1].recipeImage
包含key
和value
。也许这就是问题所在。它不直接访问url字符串。如何确保只使用字符串值?它看起来像这样:
DataSnapshot { key = recipeImageFirebase, value = https://firebasestorage.googleapis.com/v0/b/healthandchocolate-46f3d.appspot.com/o/cookies%2FcookiesImg1.jpg?alt=media&token=63721d7d-207e-441c-9387-14dced13d3c8 }
好的,现在就搞定了。 recipeArray[1].recipeImage.toString()
是一个包含密钥和字符串的数据快照。当我存储变量时,我回去了:
val image = item.child("recipeImageFirebase")
tempRecipe.recipeImage = image.toString()
并将最后一部分改为
tempRecipe.recipeImage = image.value.toString()
现在它只包含字符串值,而不是键“recipeImageFirebase”!