android - 如何在flutter中从firebase存储中删除图像
问题描述
如何在颤动中从firebase存储中删除图像
Padding(
padding: const EdgeInsets.all(12.0),
child: Container(
child: InkWell(
onTap: (){
Widget cancelButton = FlatButton(
child: Text("Cancel"),
onPressed: () {
Navigator.pop(context);
},
);
Widget continueButton = FlatButton(
child: Text("Continue"),
onPressed: () async{
final FirebaseStorage storage = FirebaseStorage(storageBucket: 'gs://djgwalior-15404.appspot.com/');
await storage.ref().child('birthday/'+snapshot.data[index].data['name']+'.jpeg').delete();
Firestore.instance.collection("birthday")
.document(snapshot.data[index].documentID)
.delete().whenComplete((){
Navigator.pop(context);
Scaffold.of(context).showSnackBar(SnackBar(content: Text("Booking Done")));
}).catchError((e){
debugPrint(e);
});
},
);
// set up the AlertDialog
AlertDialog alert = AlertDialog(
title: Text("Delete Item"),
content: Text("Are you sure?"),
actions: [
cancelButton,
continueButton,
],
);
// show the dialog
showDialog(
context: context,
builder: (BuildContext context) {
return alert;
},
); },
child: Icon(Icons.delete, color: Colors.red,)),
),
)
错误:
E/StorageException(11472): StorageException has occurred.
E/StorageException(11472): Object does not exist at location.
E/StorageException(11472): Code: -13010 HttpResult: 404
E/StorageException(11472): { "error": { "code": 404, "message": "Not Found. Could not delete object", "status": "DELETE_OBJECT" }}
E/StorageException(11472): java.io.IOException: { "error": { "code": 404, "message": "Not Found. Could not delete object", "status": "DELETE_OBJECT" }}
E/StorageException(11472): at com.google.firebase.storage.network.NetworkRequest.parseResponse(com.google.firebase:firebase-storage@@17.0.0:455)
E/StorageException(11472): at com.google.firebase.storage.network.NetworkRequest.parseErrorResponse(com.google.firebase:firebase-storage@@17.0.0:435)
E/StorageException(11472): at com.google.firebase.storage.network.NetworkRequest.processResponseStream(com.google.firebase:firebase-storage@@17.0.0:426)
E/StorageException(11472): at com.google.firebase.storage.network.NetworkRequest.performRequest(com.google.firebase:firebase-storage@@17.0.0:280)
E/StorageException(11472): at com.google.firebase.storage.network.NetworkRequest.performRequest(com.google.firebase:firebase-storage@@17.0.0:294)
E/StorageException(11472): at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(com.google.firebase:firebase-storage@@17.0.0:70)
E/StorageException(11472): at com.google.firebase.storage.internal.ExponentialBackoffSender.sendWithExponentialBackoff(com.google.firebase:firebase-storage@@17.0.0:62)
E/StorageException(11472): at com.google.firebase.storage.DeleteStorageTask.run(com.google.firebase:firebase-storage@@17.0.0:58)
E/StorageException(11472): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
E/StorageException(11472): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
E/StorageException(11472): at java.lang.Thread.run(Thread.java:764)
E/flutter (11472): [ERROR:flutter/lib/ui/ui_dart_state.cc(148)] Unhandled Exception: PlatformException(deletion_error, Object does not exist at location., null)
E/flutter (11472): #0 StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:564:7)
E/flutter (11472): #1 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:302:33)
E/flutter (11472): <asynchronous suspension>
E/flutter (11472): #2 StorageReference.delete (package:firebase_storage/src/storage_reference.dart:152:10)
E/flutter (11472): #3 _Birthday_showState._view.<anonymous closure>.<anonymous closure> (package:getbookings/birthday_show.dart:225:118)
E/flutter (11472): <asynchronous suspension>
E/flutter (11472): #4 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:511:14)
E/flutter (11472): #5 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:566:30)
E/flutter (11472): #6 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:166:24)
E/flutter (11472): #7 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:240:9)
E/flutter (11472): #8 TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:177:9)
E/flutter (11472): #9 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:436:9)
E/flutter (11472): #10 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73:12)
E/flutter (11472): #11 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101:11)
E/flutter (11472): #12 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:221:19)
E/flutter (11472): #13 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:199:22)
E/flutter (11472): #14 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:156:7)
E/flutter (11472): #15 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:102:7)
E/flutter (11472): #16 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:86:7)
E/flutter (11472): #17 _rootRunUnary (dart:async/zone.dart:1136:13)
E/flutter (11472): #18 _CustomZone.runUnary (dart:async/zone.dart:1029:19)
E/flutter (11472): #19 _CustomZone.runUnaryGuarded (dart:async/zone.dart:931:7)
E/flutter (11472): #20 _invoke1 (dart:ui/hooks.dart:233:10)
E/flutter (11472): #21 _dispatchPointerDataPacket (dart:ui/hooks.dart:154:5)
E/flutter (11472):
解决方案
从存储中删除对象的功能是正确的。您可能想要验证对象的路径是否正确或对象是否仍然存在。