【发布时间】:2021-09-23 15:28:19
【问题描述】:
我正在尝试将我制作的 firebase 地图转换为可以在我的 dart 应用程序中使用的地图,但我不断收到错误消息:StreamProvider,但没有提供
catchError。
例外:
_MapStream
StreamProvider,但没有提供
catchError。
例外:
'String' 类型不是 'Map
这里是我试图显示我的信息的地方,它也给了我 null 但这可能是因为地图问题
final PendingOrders = Provider.of<List<Receipt>>(context);
return ListView.builder(
itemCount: PendingOrders.length,
itemBuilder: (builder,index){
return Container(
child: Text(PendingOrders[index].Status.toString()),
);
},
);
这是我试图从 firebase 获取我的信息的地方
List<Receipt> AllOrders(QuerySnapshot snapshot){
return snapshot.docs.map((doc){
return Receipt(
id:doc.data()['ID'] ?? '',
Status: doc.data()['Status'] ?? '',
TotalPrice: doc.data()['TotalPrice'] ?? '',
PaymentMethod: doc.data()['PaymentMethod'] ?? '',
Date:doc.data()['Date'] ?? '',
BoughtItems: doc.data()['Map'] ?? '',
);
}).toList();
}
Stream<List<Receipt>> get PendingOrders{
return availableOrders.where('Status',isEqualTo:"Pending").snapshots().map(AllOrders);
}
这是收据模型
class Receipt {
String cashierName;
String TotalPrice;
String PaymentMethod;
Timestamp Date;
String Status;
Map BoughtItems;
String id;
Receipt({this.id,this.cashierName,this.TotalPrice,this.PaymentMethod,this.Status,this.Date,this.BoughtItems});
}
我有一张地图,里面的值是双倍的
【问题讨论】: