我如何从Firebase存储中删除图像

时间:2018-12-30 00:44:22

标签: flutter

我想从Firebase存储中删除图像。

我尝试了这个,但是对我不起作用

await _storage.child('gs://flutter-firebase-636d0.appspot.com/e-commerce/header_image/img1.jpg').delete();

4 个答案:

答案 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