【问题标题】:Path must not contain // in them路径中不得包含 //
【发布时间】:2021-02-06 11:57:03
【问题描述】:

我制作了一个社交媒体应用程序,用户可以在其中上传图片。我想为应用程序中的用户添加删除选项。我希望用户在需要时从 Firebase 云存储中删除他们的照片。这是我的代码

            val firebase_url = contentDTOs[p1].imageUrl
            val storageRef =
                firebase_url?.let { it1 ->
                    FirebaseFirestore.getInstance().collection("images").document(
                        it1
                    )
                }




            storageRef?.delete()?.addOnSuccessListener {
                // File deleted successfully
                Toast.makeText(context , "Deleted",Toast.LENGTH_SHORT).show()

            }?.addOnFailureListener {
                // Uh-oh, an error occurred!
                Toast.makeText(context , "cannot delete",Toast.LENGTH_SHORT).show()
            }

            return@setOnLongClickListener true

但是每当我尝试删除任何图像时,它都会返回一个错误

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.example.videoapp, PID: 20522
    java.lang.IllegalArgumentException: Invalid path (https://firebasestorage.googleapis.com/v0/b/video-app-af9bf.appspot.com/o/images%2FIMAGE_20201023_144632_.png?alt=media&token=9cd9d400-49ed-4f73-81b3-baa7668a8430). Paths must not contain // in them.
 

【问题讨论】:

  • 我不确定这一点,但也许尝试从 URL 中删除 https://?所以 URL 将是 firebasestorage.googleapis...
  • 我将如何删除它
  • 我不知道,我对 Kotlin 真的不熟悉,但一定有某种字符串解析器可以用来做。
  • 是 contentDTOs[p1].image url 是这里的解析
  • 您的代码正在尝试从 Firestore 中删除文档。那是你要的吗?或者您是否尝试从 Cloud Storage 中删除文档,这完全是另一回事?请编辑问题以明确您的目标是什么。

标签: android firebase kotlin firebase-storage


【解决方案1】:

我想是因为你有

图像%2FIMAGE_20201023_144632

链接中的片段。 %2F 是编码的反斜杠。不幸的是,从您的代码中不清楚,这个链接是如何形成的

【讨论】:

猜你喜欢
  • 2017-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-27
相关资源
最近更新 更多