首页 > 解决方案 > 我们可以使用firebase控制台手动上传图片吗?

问题描述

在我的应用程序中,我必须在 RecyclerView 中显示来自 Firebase 数据库的图像,但问题是我不想使用我的应用程序上传图像,但我希望使用 Firebase 存储控制台手动添加它们,然后使用它们的位置添加在 Firebase 数据库中。我试过这样做,但滑翔没有加载图像。那么有没有办法手动上传图片并在应用程序中加载图片?

编辑: 在此处输入图像描述 看我的图像,我只是在我的数据库表中添加了图像的存储位置。之后,我使用这些函数来获取图像位置并在 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。 在此处输入图像描述

标签: androidfirebasefirebase-storageandroid-glide

解决方案


您已在数据库中存储了一个“gs://”URL。这是一个特殊的 Cloud Storage 网址,仅适用于 Google 基础架构。它不适用于浏览器或应用程序。

您将不得不在数据库中存储下载 URL。如果你做的正确,它将以“https://”开头。


推荐阅读