【问题标题】:Can we use firebase console to upload images manually?我们可以使用firebase控制台手动上传图片吗?
【发布时间】: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


【解决方案1】:

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

您将不得不在数据库中存储download URL。如果操作正确,它将以“https://”开头。

【讨论】:

  • 正如我之前所说,我不是使用我的应用程序代码上传图像,而是使用 Firebase 存储控制台手动执行此操作。那么有没有办法让它像这样工作。
  • 您必须以某种方式创建一个下载 URL。那个 gs URL 根本行不通。将文件添加到存储桶的方式无关紧要。
  • 所以你只是告诉我使用我的应用代码上传图片,否则它不会像这样工作..
  • 您可以以任何方式上传图片。无论您做什么,您仍然需要生成一个下载 URL 以存储在您的数据库中,以便可以将其加载到您的应用程序中。您现在拥有的 gs URL 将无法使用。
  • 好的,那我如何获得下载地址,你能分享任何代码吗。
猜你喜欢
  • 2016-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-08
  • 2011-09-13
  • 1970-01-01
  • 2016-11-05
相关资源
最近更新 更多