flutter - 未处理的异常:无效的参数:“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)
解决方案
推荐阅读
- php - cUrl 在 localhost 上工作正常,但在服务器上不起作用,只显示空白页
- vba - VBA(Word)如何在段落处插入分页符?
- arrays - 如何让 Observable Object 更新列表?
- haskell - 字符串矩阵,具有唯一的列和行,拉丁方
- php - 通过 Composer 安装软件包后如何启动脚本?
- tensorflow - 如何理解 tensorflow 中的 conv2d_transpose
- python - 在python中进行曲面拟合后计算3D偏差的均方根
- python - 在 df 中找到较低的低点,但得到只能比较标记相同的 DataFrame 对象
- react-native - 套接字在发布版本中不起作用 React Native
- django - 在 Django admin 上显示多个多边形