我尝试了此帖子的示例How to delete a Firebase Storage file with flutter?
但是它没有用。这是我尝试过的:
String filePath = 'https://firebasestorage.googleapis.com/v0/b/amct-47348.appspot.com/o/ClassificadoImages%2F1579839318515.jpg?alt=media&token=cd8880eb-8b37-45e4-8dc1-e75de0c5f7cb'
.replaceAll(new RegExp(r 'https://firebasestorage.googleapis.com/v0/b/amct-47348.appspot.com/o/ClassificadoImages%2F'), '').split('?')[0];
FirebaseStorage.instance.ref().child(filePath).delete()
.then((_) {
print('Successfully deleted $filePath storage item');
}).catchError((e) {
print("err: $e");
});
这就是它返回的内容:
I / flutter(4920): err: PlatformException(deletion_error, Object does not exist at location., null)
由于它与示例完全相同,因此可以对为什么返回错误有一些想法。感谢您的阅读。
Firebase SDK在存储文件的存储桶中采用文件的路径。他们不使用URL或拆分URL。它们也不会采用url编码的字符串。路径必须是用于上传路径的纯字符串。
只是一个猜测,但如果您具有以以下开头的下载网址,则>
然后文件的字符串路径可能是
ClassificadoImages / 1579839318515.jpg
这就是您应该传递给
FirebaseStorage.instance.ref().child()
以建立使用它的引用(因为%2F是URL中正斜杠的编码版本)。
作为错误显示,此位置没有任何图像。