首页 > 解决方案 > 未处理的异常:无效的参数:“CartItemModel”的实例

问题描述

我正在开发商店应用程序,在用户下订单后,我想将该订单详细信息存储在 firebase firestore 中。按下按钮后执行该呼叫的功能是

 addOrderDetails() {
final user  = Provider.of<UserProvider>(context, listen: false);
writeOrderDetailsForUser({
  "userId" : user.user.uid,
  "description" : "Cash on delivery",
  "status" : "pending",
  "createdAt": DateTime.now().millisecondsSinceEpoch.toString(),
  "totalPrice" : user.userModel.totalCartPrice,
   "cart" : user.userModel.cart,
  "address" : widget.addressId,
  "phone" : user.userModel.phone,
 }).whenComplete(() async {
  for (CartItemModel cartItem in user.userModel.cart){
    bool value = await user.removeFromCart(cartItem: cartItem);
    if(value) {
      user.reloadUserModel();
      ScaffoldMessenger.of(context).showSnackBar(SnackBar(content: Text("Item has been successfully removed from cart"),));
    }else {
      print(
        "item has not been removed from cart please try again"
      );
    }
  }
  ScaffoldMessenger.of(context).showSnackBar(SnackBar(
    content: Text(
        "Your order has been successfully created, please we will call you in a few minutes to confirm your order"),));
});
changeScreenReplacement(context, NavigationController());

}

Future writeOrderDetailsForUser(Map<String, dynamic> data) async
  {
    await EcommerceApp.firestore
        .collection(EcommerceApp.collectionOrders)
        .document(EcommerceApp.sharedPreferences.getString(EcommerceApp.userUID) + data['createdAt'])
        .setData(data);
  }
}

但是,每当我进行函数调用时,我都会收到此错误

I/flutter(24853):购物车项目是:“CartItemModel”实例 E/flutter(24853):[错误:flutter/lib/ui/ui_dart_state.cc(199)]未处理的异常:无效参数:“CartItemModel”实例 E/flutter (24853): #0 StandardMessageCodec.writeValue (package:flutter/src/services/message_codecs.dart:419:7) E/flutter (24853): #1 FirestoreMessageCodec.writeValue (package:cloud_firestore_platform_interface/src/method_channel/ utils/firestore_message_codec.dart:83:13) E/flutter (24853): #2 StandardMessageCodec.writeValue (package:flutter/src/services/message_codecs.dart:409:9) E/flutter (24853): #3 FirestoreMessageCodec。 writeValue (package:cloud_firestore_platform_interface/src/method_channel/utils/firestore_message_codec.dart:83:13) E/flutter (24853): #4 StandardMessageCodec.writeValue。(package:flutter/src/services/message_codecs.dart:416:9) E/flutter (24853): #5 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:397:8) E/flutter (24853) : #6 StandardMessageCodec.writeValue (包: flutter/src/services/message_codecs.dart:414:13) E/flutter (24853): #7 FirestoreMessageCodec.writeValue (package:cloud_firestore_platform_interface/src/method_channel/utils/firestore_message_codec.dart:83:13) E/flutter (24853 ): #8 StandardMessageCodec.writeValue。(package:flutter/src/services/message_codecs.dart:416:9) E/flutter (24853): #9 _LinkedHashMapMixin.forEach (dart:collection-patch/compact_hash.dart:397:8) E/flutter (24853) : #10 StandardMessageCodec.writeValue (package:flutter/src/services/message_codecs.dart:414:13) E/flutter (24853): #11 FirestoreMessageCodec.writeValue (package:cloud_firestore_platform_interface/src/method_channel/utils/firestore_message_codec.dart: 83:13) E/flutter (24853): #12 StandardMethodCodec.encodeMethodCall (package:flutter/src/services/message_codecs.dart:551:18) E/flutter (24853): #13 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:150:13) E/flutter (24853): #14 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:331:12 ) E/flutter (24853): #15 MethodChannelDocumentReference.setData (package:cloud_firestore_platform_interface/src/method_channel/method_channel_document_reference.dart:28:43) E/flutter (24853): #16 DocumentReference.setData (package:cloud_firestore/src/document_reference .dart:48:22) E/flutter (24853): #17 _PaymentPageState.writeOrderDetailsForUser (package:maen/screens/placeOrderPayment.dart:349:10) E/flutter (24853): #18 _PaymentPageState.addOrderDetails (package:maen /screens/placeOrderPayment.dart:316:5) E/flutter (24853): #19 _PaymentPageState.build。(包:maen/screens/placeOrderPayment.dart:297:17)_invokeMethod (package:flutter/src/services/platform_channel.dart:150:13) E/flutter (24853): #14 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:331:12) E/flutter (24853): #15 MethodChannelDocumentReference.setData (package:cloud_firestore_platform_interface/src/method_channel/method_channel_document_reference.dart:28:43) E/flutter (24853): #16 DocumentReference.setData (package:cloud_firestore/src/document_reference.dart:48 :22) E/flutter (24853): #17 _PaymentPageState.writeOrderDetailsForUser (package:maen/screens/placeOrderPayment.dart:349:10) E/flutter (24853): #18 _PaymentPageState.addOrderDetails (package:maen/screens/placeOrderPayment .dart:316:5) E/flutter (24853): #19 _PaymentPageState.build。(包:maen/screens/placeOrderPayment.dart:297:17)_invokeMethod (package:flutter/src/services/platform_channel.dart:150:13) E/flutter (24853): #14 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:331:12) E/flutter (24853): #15 MethodChannelDocumentReference.setData (package:cloud_firestore_platform_interface/src/method_channel/method_channel_document_reference.dart:28:43) E/flutter (24853): #16 DocumentReference.setData (package:cloud_firestore/src/document_reference.dart:48 :22) E/flutter (24853): #17 _PaymentPageState.writeOrderDetailsForUser (package:maen/screens/placeOrderPayment.dart:349:10) E/flutter (24853): #18 _PaymentPageState.addOrderDetails (package:maen/screens/placeOrderPayment .dart:316:5) E/flutter (24853): #19 _PaymentPageState.build。(包:maen/screens/placeOrderPayment.dart:297:17)flutter/src/services/platform_channel.dart:150:13) E/flutter (24853): #14 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:331:12) E/flutter (24853): #15 MethodChannelDocumentReference.setData (package:cloud_firestore_platform_interface/src/method_channel/method_channel_document_reference.dart:28:43) E/flutter (24853): #16 DocumentReference.setData (package:cloud_firestore/src/document_reference.dart:48:22) E /flutter (24853): #17 _PaymentPageState.writeOrderDetailsForUser (package:maen/screens/placeOrderPayment.dart:349:10) E/flutter (24853): #18 _PaymentPageState.addOrderDetails (package:maen/screens/placeOrderPayment.dart:316 :5) E/flutter (24853): #19 _PaymentPageState.build。(包:maen/screens/placeOrderPayment.dart:297:17)flutter/src/services/platform_channel.dart:150:13) E/flutter (24853): #14 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:331:12) E/flutter (24853): #15 MethodChannelDocumentReference.setData (package:cloud_firestore_platform_interface/src/method_channel/method_channel_document_reference.dart:28:43) E/flutter (24853): #16 DocumentReference.setData (package:cloud_firestore/src/document_reference.dart:48:22) E /flutter (24853): #17 _PaymentPageState.writeOrderDetailsForUser (package:maen/screens/placeOrderPayment.dart:349:10) E/flutter (24853): #18 _PaymentPageState.addOrderDetails (package:maen/screens/placeOrderPayment.dart:316 :5) E/flutter (24853): #19 _PaymentPageState.build。(包:maen/screens/placeOrderPayment.dart:297:17)#14 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:331:12) E/flutter (24853): #15 MethodChannelDocumentReference.setData (package:cloud_firestore_platform_interface/src/method_channel/method_channel_document_reference.dart:28:43 ) E/flutter (24853): #16 DocumentReference.setData (package:cloud_firestore/src/document_reference.dart:48:22) E/flutter (24853): #17 _PaymentPageState.writeOrderDetailsForUser (package:maen/screens/placeOrderPayment.dart :349:10) E/flutter (24853): #18 _PaymentPageState.addOrderDetails (package:maen/screens/placeOrderPayment.dart:316:5) E/flutter (24853): #19 _PaymentPageState.build。(包:maen/screens/placeOrderPayment.dart:297:17)#14 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:331:12) E/flutter (24853): #15 MethodChannelDocumentReference.setData (package:cloud_firestore_platform_interface/src/method_channel/method_channel_document_reference.dart:28:43 ) E/flutter (24853): #16 DocumentReference.setData (package:cloud_firestore/src/document_reference.dart:48:22) E/flutter (24853): #17 _PaymentPageState.writeOrderDetailsForUser (package:maen/screens/placeOrderPayment.dart :349:10) E/flutter (24853): #18 _PaymentPageState.addOrderDetails (package:maen/screens/placeOrderPayment.dart:316:5) E/flutter (24853): #19 _PaymentPageState.build。(包:maen/screens/placeOrderPayment.dart:297:17)setData (package:cloud_firestore_platform_interface/src/method_channel/method_channel_document_reference.dart:28:43) E/flutter (24853): #16 DocumentReference.setData (package:cloud_firestore/src/document_reference.dart:48:22) E/flutter (24853) ): #17 _PaymentPageState.writeOrderDetailsForUser (package:maen/screens/placeOrderPayment.dart:349:10) E/flutter (24853): #18 _PaymentPageState.addOrderDetails (package:maen/screens/placeOrderPayment.dart:316:5) E /flutter (24853): #19 _PaymentPageState.build。(包:maen/screens/placeOrderPayment.dart:297:17)setData (package:cloud_firestore_platform_interface/src/method_channel/method_channel_document_reference.dart:28:43) E/flutter (24853): #16 DocumentReference.setData (package:cloud_firestore/src/document_reference.dart:48:22) E/flutter (24853) ): #17 _PaymentPageState.writeOrderDetailsForUser (package:maen/screens/placeOrderPayment.dart:349:10) E/flutter (24853): #18 _PaymentPageState.addOrderDetails (package:maen/screens/placeOrderPayment.dart:316:5) E /flutter (24853): #19 _PaymentPageState.build。(包:maen/screens/placeOrderPayment.dart:297:17)writeOrderDetailsForUser (package:maen/screens/placeOrderPayment.dart:349:10) E/flutter (24853): #18 _PaymentPageState.addOrderDetails (package:maen/screens/placeOrderPayment.dart:316:5) E/flutter (24853): #19 _PaymentPageState.build。(包:maen/screens/placeOrderPayment.dart:297:17)writeOrderDetailsForUser (package:maen/screens/placeOrderPayment.dart:349:10) E/flutter (24853): #18 _PaymentPageState.addOrderDetails (package:maen/screens/placeOrderPayment.dart:316:5) E/flutter (24853): #19 _PaymentPageState.build。(包:maen/screens/placeOrderPayment.dart:297:17)

标签: flutterdart

解决方案


推荐阅读