【发布时间】:2020-08-21 22:58:05
【问题描述】:
在我的应用程序中,我必须在 RecyclerView 中显示来自 Firebase 数据库的图像,但问题是我不想使用我的应用程序上传图像,但我希望使用 Firebase 存储控制台手动添加它们,然后使用它们的位置要添加到 Firebase 数据库中。我试过这样做,但滑翔没有加载图像。那么有没有办法手动上传图片并在应用程序中加载图片?
编辑: enter image description here 看我的图像,我只是在我的数据库表中添加了图像的存储位置。之后我使用这些函数来获取图像位置并在 glide 库的帮助下加载它们。
这是我从 Firebase 数据库中检索类别的代码。
fun getCategories() : List<Categories>{
val categoriesList = mutableListOf<Categories>()
CoroutineScope(IO).launch {
databaseReference.child("categories")
.addValueEventListener(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
for (postSnapshot in dataSnapshot.children) {
val categories = postSnapshot.getValue(Categories::class.java)
categoriesList.add(categories!!)
}
}
override fun onCancelled(p0: DatabaseError) {
}
})
}
return categoriesList
}
检索类别列表后,我将图像加载到适配器类中。这是我的适配器类代码
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
val model = modelList[position]
holder.nameOfFruit?.text = model.name
holder.nameOfFruit?.setOnClickListener {
it.findNavController().navigate(R.id.action_mainFragment_to_choiceSelectedFragmentModel)
}
Glide.with(myContext!!).load(model.url).into(holder.imageOfFruit)
}
已编辑:这是我存储在数据库中的图像 URL。 enter image description here
【问题讨论】:
-
通过控制台上传的图像的行为应该与从移动客户端上传的图像没有什么不同。
-
他们正在正确上传但图像没有使用 glide 加载,我检查了图像的存储位置并点击了浏览器的 url 但我无法看到任何图像..如果我使用任何其他源图像 url,如 YouTube 图像 url 并用它替换图像 url,然后我可以使用 glide 加载 YouTube 图像。我认为所有问题都出现在我存储在数据库中的 firebase 存储 url 中。
-
在没有看到代码和实际数据的情况下,我们不知道您是否做错了什么。
-
我编辑了我的问题,现在你可以检查我做错了什么。
-
我们仍然看不到您正在使用的实际数据示例。
标签: android firebase firebase-storage android-glide