我需要从 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删除图片?
答案 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 仪表板中删除它,还是希望用户能够从按钮或其他东西中删除图像?