首页 > 解决方案 > 将火力地图转换为飞镖地图

问题描述

我试图将我制作的 Firebase 地图转换为我可以在我的飞镖应用程序中使用的地图,但我不断收到错误消息:StreamProvider<List>,但没有catchError提供。

异常:_MapStream<QuerySnapshot, List> 引发异常

StreamProvider<List>,但没有catchError提供。

例外:“String”类型不是“Map<dynamic, dynamic>”类型的子类型

这是我试图显示我的信息的地方,它也给了我 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()),
        );
      },
    );

这是我试图从火力基地获取我的信息的地方

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});
  
}

这是我的火力基地形状的图片 我有一张地图,里面的值是双倍的

标签: firebaseflutterdart

解决方案


你可以试试这个

尝试改变你的dartMap to Map<dynamic,dynamic>.

您的错误可能会发生,因为您现在无法确定 Firestore 中的 Map 具有哪些类型。


推荐阅读