Hen*_*our 5 firebase flutter google-cloud-firestore flutter-dependencies flutter-web
我正在尝试将图像上传到移动应用程序上的 firebase 云存储,它可以工作,但在网络上它会出现这样的错误........................ ...................................................... ...................................................... ......................................
Error: Unsupported operation: _Namespace
at Object.throw_ [as throw] (http://localhost:52964/dart_sdk.js:5067:11)
at Function.get _namespacePointer [as _namespacePointer] (http://localhost:52964/dart_sdk.js:56707:17)
at Function._namespacePointer (http://localhost:52964/dart_sdk.js:54523:28)
at Function._dispatchWithNamespace (http://localhost:52964/dart_sdk.js:54526:31)
at io._File.new.open (http://localhost:52964/dart_sdk.js:54641:23)
at io._File.new.readAsBytes (http://localhost:52964/dart_sdk.js:54787:19)
at firebase_storage$.FireBaseStorageMethods.new.uploadImage (http://localhost:52964/packages/flutterfire/utils/firebase_storage.dart.lib.js:51:48)
at uploadImage.next (<anonymous>)
at runBody (http://localhost:52964/dart_sdk.js:40590:34)
at Object._async [as async] (http://localhost:52964/dart_sdk.js:40621:7)
at firebase_storage$.FireBaseStorageMethods.new.uploadImage (http://localhost:52964/packages/flutterfire/utils/firebase_storage.dart.lib.js:42:20)
at http://localhost:52964/packages/flutterfire/views/product/add_product.dart.lib.js:235:71
at ink_well._InkResponseState.new.[_handleTap] (http://localhost:52964/packages/flutter/src/material/icon_button.dart.lib.js:40468:31)
at tap.TapGestureRecognizer.new.invokeCallback (http://localhost:52964/packages/flutter/src/gestures/recognizer.dart.lib.js:190:18)
at tap.TapGestureRecognizer.new.handleTapUp (http://localhost:52964/packages/flutter/src/gestures/tap.dart.lib.js:409:40)
at tap.TapGestureRecognizer.new.[_checkUp] (http://localhost:52964/packages/flutter/src/gestures/tap.dart.lib.js:217:12)
at tap.TapGestureRecognizer.new.handlePrimaryPointer (http://localhost:52964/packages/flutter/src/gestures/tap.dart.lib.js:166:23)
at tap.TapGestureRecognizer.new.handleEvent (http://localhost:52964/packages/flutter/src/gestures/recognizer.dart.lib.js:426:16)
at pointer_router.PointerRouter.new.[_dispatch] (http://localhost:52964/packages/flutter/src/gestures/pointer_router.dart.lib.js:86:9)
at http://localhost:52964/packages/flutter/src/gestures/pointer_router.dart.lib.js:112:26
at LinkedMap.new.forEach (http://localhost:52964/dart_sdk.js:27679:11)
at pointer_router.PointerRouter.new.[_dispatchEventToRoutes] (http://localhost:52964/packages/flutter/src/gestures/pointer_router.dart.lib.js:110:29)
at pointer_router.PointerRouter.new.route (http://localhost:52964/packages/flutter/src/gestures/pointer_router.dart.lib.js:105:37)
at binding$5.WidgetsFlutterBinding.new.handleEvent (http://localhost:52964/packages/flutter/src/gestures/binding.dart.lib.js:364:26)
at binding$5.WidgetsFlutterBinding.new.dispatchEvent (http://localhost:52964/packages/flutter/src/gestures/binding.dart.lib.js:352:24)
at binding$5.WidgetsFlutterBinding.new.dispatchEvent (http://localhost:52964/packages/flutter/src/rendering/layer.dart.lib.js:5427:13)
at binding$5.WidgetsFlutterBinding.new.[_handlePointerEventImmediately] (http://localhost:52964/packages/flutter/src/gestures/binding.dart.lib.js:328:14)
at binding$5.WidgetsFlutterBinding.new.handlePointerEvent (http://localhost:52964/packages/flutter/src/gestures/binding.dart.lib.js:302:43)
at binding$5.WidgetsFlutterBinding.new.[_flushPointerEventQueue] (http://localhost:52964/packages/flutter/src/gestures/binding.dart.lib.js:292:14)
at binding$5.WidgetsFlutterBinding.new.[_handlePointerDataPacket] (http://localhost:52964/packages/flutter/src/gestures/binding.dart.lib.js:283:54)
at Object.invoke1 (http://localhost:52964/dart_sdk.js:190405:7)
at _engine.EnginePlatformDispatcher.__.invokeOnPointerDataPacket (http://localhost:52964/dart_sdk.js:171081:15)
at _engine.PointerBinding.__.[_onPointerData] (http://localhost:52964/dart_sdk.js:171963:49)
at http://localhost:52964/dart_sdk.js:172401:28
at http://localhost:52964/dart_sdk.js:172357:16
at loggedHandler (http://localhost:52964/dart_sdk.js:172062:11)
Run Code Online (Sandbox Code Playgroud)
这是我的做法:
Future<List<ProductImageModel>> uploadImage(
{String? destination = 'files',
required List<ProductImageModel> images,
required BuildContext context}) async {
UploadTask? task;
List<ProductImageModel> _imageDocs = [];
for (var image in images) {
final _destination = '$destination/product - ${DateTime.now()}';
final ref = fireBaseStorage.ref(_destination);
File _filePath = File(image.filePathFromDevice);
if (kIsWeb) {
task = ref.putData(await _filePath.readAsBytes());
} else {
task = ref.putFile(_filePath);
}
//waiting images upload to firebase until completed
final taskSnapShot = await task
.catchError((error) => Alert.show(
des: error.toString(), type: Type.error, context: context))
.whenComplete(() => {});
_imageDocs.add(ProductImageModel(
fileName: taskSnapShot.ref.name,
filePathFromDevice: image.filePathFromDevice,
filePath: await taskSnapShot.ref.getDownloadURL()));
}
return _imageDocs;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1486 次 |
| 最近记录: |