【问题标题】:Contverting a firebase Map into a Dart Map将火力地图转换为飞镖地图
【发布时间】: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});
  
}

我有一张地图,里面的值是双倍的

【问题讨论】:

    标签: firebase flutter dart


    【解决方案1】:

    你可以试试this:

    尝试更改您的dartMap to Map&lt;dynamic,dynamic&gt;

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

    【讨论】:

    • 错误来自 itemCount:PendingOrders.length 我认为它遍历我的 pendingOrders 就好像它是一个地图而不是列表流
    猜你喜欢
    • 2020-05-10
    • 1970-01-01
    • 1970-01-01
    • 2021-06-21
    • 2021-10-07
    • 2023-03-31
    • 2021-10-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多