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

Firebase Storage执行下载时自动删除图片问题求助

Firebase Storage 图片被删除问题解决

你的代码中awaitClose块里的storageRef.delete()是导致图片被删除的直接原因:awaitClose会在callbackFlow的流关闭时(比如collect操作完成、订阅被取消)执行内部逻辑,也就是说每次你完成图片下载后,流结束就会触发云端文件的删除操作。

修改后的代码如下,移除不必要的删除调用即可:

override fun getImage(url:String) = callbackFlow {
    val size: Long = 1024 * 1024 * 20 //20MB
    val storageRef = FirebaseStorage.getInstance().reference.child("images/${url}")
    Log.d("TEST", storageRef.toString())
    storageRef.getBytes(size).addOnSuccessListener {
        trySend(Response.Success(it))
    }.addOnFailureListener {
        trySend(Response.Failure(it))
    }
    awaitClose{
        // 此处不需要删除云端存储的文件,移除delete调用
    }
}

awaitClose的作用是清理与流绑定的临时资源(比如取消未完成的网络请求、关闭实时监听等),而非删除云端的持久化文件,你的场景只需要下载文件,完全不需要这个删除操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 03:44:55