我想从Firebase存储中删除图像。
我尝试了这个,但是对我不起作用
await _storage.child('gs://flutter-firebase-636d0.appspot.com/e-commerce/header_image/img1.jpg').delete();
答案 0 :(得分:2)
您不能将gs://
网址放在子方法中作为参数。但是,您可以将其提供给FirebaseStorage类的storageBucket
属性。
final FirebaseStorage storage = FirebaseStorage(storageBucket: 'gs://flutter-firebase-636d0.appspot.com/');
然后您可以像这样删除图像:
onPressed: () async{
await storage.ref().child("e-commerce/header_image/img1.jpg").delete();
}
答案 1 :(得分:0)
您需要像这样将路径传递给文件作为子对象的参数:
await _storage.child('sample/path/to/the/image.jpg').delete();
答案 2 :(得分:0)
现在您可以轻松删除带有下载URL的图片
String imageUrl = 'here goes image url';
StorageReference ref = await FirebaseStorage().getReferenceFromUrl(imageUrl);
ref.delete();
答案 3 :(得分:0)
2021 年 2 月:
Future<void> removeImageFromUrl(String url) async {
try {
Reference ref = await FirebaseStorage.instance.refFromURL(url);
await ref.delete();
} catch (e) {
print('Failed with error code: ${e.code}');
print(e.message);
}
}
上述方法中的url是将图片存入bucket后获取的url。
eg:
https://firebasestorage.googleapis.com/v0/b/xxxx.appspot.com/o/bucket%2xxxx?alt=media&token=xxxx
参考: https://pub.dev/documentation/firebase_storage/latest/firebase_storage/Reference-class.html