我正在从Firebase获取订单数据,工作正常,但如果没有数据,它会在控制台中显示错误
我添加了一个if语句,如果数据不可用,即使它不能解决问题
这是我的代码,用于获取订单数据,并在Firebase数据中没有产品的情况下处理产品列表
那么,如果没有产品,现在该如何解决呢
Future<void> fetchandsetorders() async {
final url = Uri.parse(
myelin);
final response = await http.get(url);
final List<OrderItem> loadedorders = [];
final extradeddata = json.decode(response.body) as Map<String, dynamic>;
//I added this statement but still not solving
if(extradeddata==null)
return;
extradeddata.forEach((orderid, orderdata) {
loadedorders.add(
OrderItem(
id: orderid,
products: (orderdata['products'] as List<dynamic>).map((item) {
return CartItem(
id: item['id'],
title: item['title'],
quantity: item['qty'],
price: item['price']);
}).toList(),
amount: orderdata['amount'],
date: DateTime.parse(orderdata['date']),
),
);
});
_orders=loadedorders;
notifyListeners();
}
显示错误是
E/flutter (32144): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: type 'Null' is not a subtype of type 'Map<String, dynamic>' in type cast
E/flutter (32144): #0 Orders.fetchandsetorders (package:finalshopapp/orders.dart:31:53)
E/flutter (32144): <asynchronous suspension>