颤动从 Firebase 存储中删除图像

时间:2021-01-20 22:28:59

标签: flutter dart firebase-storage

我需要从 firebase 存储中删除图像。我有一个将图片上传到 firebase 存储的功能,但我不知道如何从 firebase 存储中删除图片。

这里是上传图片的功能

Future uploadImageToFirebase(BuildContext context,File file) async {
    String fileName = basename(file.path);
    StorageReference firebaseStorageRef =
    FirebaseStorage.instance.ref().child('uploads/$fileName');

    StorageUploadTask uploadTask = firebaseStorageRef.putFile(file);

    StorageTaskSnapshot taskSnapshot = await uploadTask.onComplete;
    taskSnapshot.ref.getDownloadURL().then(
            (value) {
          print(value);
          setState(() {
            widget.photoAssetPaths[visiblePhotoIndex] = value;
          });
        });
  }

谁能帮我写一种方法,根据代码中的url删除图片?

3 个答案:

答案 0 :(得分:1)

在 Cloud Storage 中有 Reference to the file 后,您可以对该引用调用 delete。要将下载 URL 映射到引用,您可以调用 storage.refFromUrl()

所以,给定下载 URL,应该是这样的:

FirebaseStorage.instance.refFromUrl(downloadUrl).delete();

答案 1 :(得分:1)

所以这很简单。这是我编写的一个简单函数,用于从存储桶中删除我的文件。

这是一个简单的方法,以要删除的文件的 URL 作为参数:

deleteFile(url)

接下来是从 URL 中获取引用:

await FirebaseStorage.instance.refFromURL(url).delete();

请注意,此代码位于 try-catch 块中,以便捕获任何不可预见的错误。

完整代码如下:

Future<void> deleteFile(String url) async {
  try {
    await FirebaseStorage.instance.refFromURL(url).delete();
  } catch (e) {
    print("Error deleting db from cloud: $e");
  }
}

快乐编码!

答案 2 :(得分:0)

您总是可以从 firebase 仪表板中删除它,还是希望用户能够从按钮或其他东西中删除图像?