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
相关产品推荐
相关产品推荐

