Firebase存储文件夹删除[重复]

Posted

技术标签:

【中文标题】Firebase存储文件夹删除[重复]【英文标题】:Firebase storage folder delete [duplicate] 【发布时间】:2017-12-12 19:21:48 【问题描述】:

我在 Firebase 存储中有一个文件夹,我将用户图片上传到该文件夹​​,但我无法删除此文件夹。

Storage.storage().reference().child("folder").delete(); 

我收到错误代码 404,消息:未找到。无法删除对象。

【问题讨论】:

【参考方案1】:

编辑

您可以使用新的List API 列出存储中带有一些通用前缀的文件。前缀实际上是对象所在的路径。您将不得不让他们迭代您从 API 获得的每个对象,并单独删除每个对象。还有read this blog post关于API。

原始答案

目前无法使用 Firebase SDK 以编程方式删除 Cloud Storage 中的整个文件夹。事实证明,使用 Cloud Storage,甚至根本没有任何“文件夹”。存储桶只是名称类似于文件路径的对象的集合。在这方面它不是一个真正的“文件系统”。

如果要删除某个路径下的所有文件,则必须找到它们的所有名称并单独删除它们。出于这个原因,应用程序通常会将已知对象的路径存储在实时数据库中。

如果您想从带有gsutil 的命令行删除路径下的所有对象,请阅读the docs for "gsutil rm"。

【讨论】:

Firebase 有很多限制...... @Ruan 这些限制与 Firebase Firestore 和 Firestorage 的工作方式有关(在多个服务器上分发文件束等)。但我完全同意你的看法。我正在研究一个需要 GDPR 删除配置文件的项目,ie 删除 Firestorage 嵌套集合,这些集合绑定到 FirebaseAuth 和 FireStorage... 结果:无法将这 3 个工具的回调嵌套在一起,例如,这需要确保所有数据都被正确删除。此外,即使仅考虑 1 个工具 FirebaseStorage 例如,也不可能批量删除... Wtf. 顺便说一句,人们要求所有这些改进至少持续 3 年(我记得的最后日期:2016 年)。而谷歌并没有实现这样的功能。我们所能处理的只是 Python 云函数,我们必须设置服务器端。但是:1)不一定有服务器,也不一定有Python服务器..... 2)在一些项目中,即使是大操作也必须在客户端执行(ie: android app端, eg: Firestorage 删除),因为项目经理已经将项目定义为这样...... 所以...根据我在 Firebase 中获得的经验...:我只会将它用于精确的项目(不需要大量嵌套删除/删除多个文件等)。 )。这是可悲的。因为 Firebase 的工具(存储等)让我可以少写多做……但是在我列出的上述用例中,它们让我浪费了很多时间,这让我思考它们实际上应该用于这些类型的项目,而不是所有项目......换句话说,从项目经理的角度来看:Firebase 将用于估计低于 5000 欧元(5695 美元) ).... 截至 2019 年 7 月,您可以列出一个文件夹,并递归删除其内容,请在此处查看我的答案:***.com/questions/37749647/…

以上是关于Firebase存储文件夹删除[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Firebase 存储:是不是可以自动删除旧文件?

Firebase 存储中的文件夹不会被删除? [复制]

如何从 URL 中删除 Firebase 存储文件

删除所有文件后,Firebase 存储状态已满

带有 firebase nuxt 模块的 Firebase 存储在删除文件后无法读取未定义的属性“删除”

从firebase函数获取云存储中文件的永久可公开下载URL [重复]