You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android端如何引用Firebase Cloud Storage中的随机命名图片?

问题:Firebase Storage随机命名图片的引用与删除问题

我使用UUID.randomUUID()方法生成随机图片名上传至Firebase Storage,但在上传新图片前无法引用旧图片进行删除操作。手动输入Storage中的原始文件名可以完成删除,但我需要一种无需手动输入即可获取文件引用的方法。

原Kotlin代码

val uuid = UUID.randomUUID()
val imageName = "$uuid.jpg"

val imagereference =
    FirebaseStorage.getInstance().reference.child("images/$cu/profphoto")
        .child(imageName)

val ref2 = FirebaseStorage.getInstance().reference.child("images/$cu/profphoto/5a91e7f3-144a-4c38-b7b5-36ed644603ca.jpg")

val db = FirebaseFirestore.getInstance()
ref2.delete().addOnSuccessListener {

}
imagereference.putFile(imageUri!!)
    .addOnSuccessListener {}
解决方案

1. 将图片名存入Firestore文档

上传图片时,把生成的随机图片名和下载URL等信息存入Firestore的用户文档中:

val uploadPictureReference =
    storage.reference.child("images/$cu/profphoto").child(imageName)
uploadPictureReference.downloadUrl.addOnSuccessListener {
    val downloadUrl = it.toString()
    val auth = FirebaseAuth.getInstance()
    val cu = auth.currentUser?.uid
    if (cu != null) {
        val postMap = hashMapOf<String, Any>()
        postMap.put("imgName", imageName)
        postMap.put("downloadUs", downloadUrl)
        postMap.put("date", Timestamp.now())

        if ("downloadUs".isEmpty()) {
            val new = db.collection("Publikusers").document(cu)
            new.set(postMap, SetOptions.merge())
                .addOnSuccessListener {}
        }
    }
}

2. 根据存储的名称获取引用并删除

需要删除旧图片时,从Firestore中读取存储的图片名,以此构建Storage引用并执行删除:

val ref = db.collection("Publikusers").document(cu!!)
ref.get().addOnSuccessListener {
    val currentImageName = it.data?.get("imgName")?.toString()
    val ref2 =
        FirebaseStorage.getInstance().reference.child("images/$cu/profphoto/$currentImageName")

    ref2.delete().addOnSuccessListener {}
}

内容的提问来源于stack exchange,提问作者terlan abaszade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 04:45:41