【问题标题】:How to delete a folder from Firebase Storage with Flutter如何使用 Flutter 从 Firebase 存储中删除文件夹
【发布时间】:2026-02-24 18:00:01
【问题描述】:

我正在创建一个使用 Firebase 存储的 Flutter 应用。我有一个集合的结构,其中包含 Firestore 中的用户数据和 Firebase 存储上的一个以当前用户的 uid 命名的文件夹。但是,如果用户想要删除帐户,则必须删除所有图像。有没有办法通过 Flutter 删除 Firebase 存储中的整个目录?

文件是这样上传的:

// Upload img
firebase_storage.Reference storageRef = firebase_storage
    .FirebaseStorage.instance
    .ref()
    .child('images/users/' + uid + '/mealImages/' + fileName);
firebase_storage.UploadTask uploadTask = storageRef.putFile(imageFile); 

// Remove img where uid=aaa and fileName=bbb.jpg
await firebase_storage.FirebaseStorage.instance
    .ref()
    .child(
        'images/users/aaa/mealImages/bbb.jpg')
    .delete();

【问题讨论】:

    标签: firebase flutter firebase-storage


    【解决方案1】:

    Storage 中的文件夹会在您向其中添加第一个文件时自动创建,并在您从中删除最后一个文件时自动删除。

    因此,为您的用户删除整个文件夹的唯一方法是从中删除每个单独的文件..

    【讨论】:

    • 我们使用以下代码创建文件夹: firebase_storage.Reference storageRef = firebase_storage .FirebaseStorage.instance .ref() .child('images/users/' + uid + '/mealImages/' + fileName ); firebase_storage.UploadTask uploadTask = storageRef.putFile(imageFile);假设 uid=aaa 和 fileName=bbb.jpg 然后我尝试使用以下命令删除文件:await firebase_storage.FirebaseStorage.instance.ref().child('images/users/aaa/mealImages/bbb.jpg')。删除();它删除了文件,但文件夹仍然存在。是否应该以任何其他方式创建文件夹?
    • 现在发现之前没用的原因是我通过firebase控制台创建的文件夹。
    最近更新 更多