我基本上是Angularfire2的新手,当用户按下删除按钮时,我正试图从Firebase存储中删除一个文件夹。不幸的是,这样的信息并不在Angularfire2 documentation中。
我基本上尝试使用下面的代码:
constructor(private afs: AngularFirestore, private storage: AngularFireStorage) {
this.clientsCollection = this.afs.collection('clients', ref => ref.orderBy('uid', 'asc'));;
}
deleteClient(client, callback){
this.storage.ref(client.uid).delete();
}
不幸的是,它抛出以下错误
FirebaseStorageError {code_: "storage/object-not-found", message_: "Firebase Storage: Object '3CqyNHrIwQ3sRlj83JKM' does not exist.", serverResponse_: "{↵ "error": {↵ "code": 404,↵ "message": "Not Found. Could not delete object"↵ }↵}", name_: "FirebaseError"}
我把每个客户的文档都存储在一个文件夹中,这个文件夹的名称类似于客户的 uid。这实际上只是Firebase生成的一个ID。当我试图删除这个文件夹时,我得到了上面的错误。请帮助,我该怎么做?
4条答案
按热度按时间osh3o9ms1#
我认为更好的方法是***通过下载URL删除文件***,为此,您只需在注入的
AngularFireStorage
依赖项的示例上调用storage.refFromURL(url).delete()
。gwo2fgha2#
即使文档中没有,您使用AngularFireStorage删除文件的方法也是正确的。我自己使用它,您可以在source files中检查它。
似乎您的
client.uid
未引用任何资源。但即使它是,你说,“当我试图删除该文件夹”,但根据this post你不能删除文件夹,你将不得不保持文件列表。
ghhaqwfi3#
您可以列出文件夹中的所有项目,然后逐个删除,空文件夹将自动删除!
watbbzwu4#
以下代码适用于
Angular v15
和AngularFire v7.5.0