从Flutter中的Firebase云存储中删除文件夹

时间:2020-08-17 21:52:33

标签: firebase flutter dart google-cloud-storage firebase-storage

我有一个Flutter移动应用程序,其中我试图从Firebase Cloud Storage中删除文件夹(及其内容)。我的方法如下:

deleteFromFirebaseStorage() async {
     return await FirebaseStorage.instance.ref().child('Parent folder/Child folder').delete();
}

我希望Child folder及其内容被删除,但是会抛出此异常:

未处理的异常:PlatformException(错误-13010,FIRStorageErrorDomain,对象父文件夹/子文件夹不存在。)

但是,我可以清楚地看到该文件夹​​存在于Cloud Storage中。如何删除此文件夹?

1 个答案:

答案 0 :(得分:2)

Cloud Storage实际上没有任何文件夹。只有看起来像文件夹的路径,可以帮助您考虑数据的结构。每个对象只能有一个公共前缀来描述其在存储桶中的“虚拟位置”。

Firebase SDK没有公开操作,可以轻松删除这些通用前缀之一中的所有对象。您唯一的实际选择是使用通用前缀列出所有文件,迭代结果,然后分别删除每个对象。

不幸的是,如list files API所述,here尚未动摇。因此,就简单的解决方案而言,您有点不走运。另请参阅:FirebaseStorage: How to Delete Directory

您的主要可行选择是: