【发布时间】: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