在代码中,代码以实时(流)方式从cloud firestore获取数据,并使用StreamBuilder将其显示在数据表小部件中,但当我运行代码时,正如我上面所问的,它给出了错误。
SizedBox(
width: double.infinity,
child: StreamBuilder(
stream: FirebaseFirestore.instance.collection('products').snapshots(),
builder: (BuildContext context,snapshot) {
(!snapshot.hasData)?
Center(child: CircularProgressIndicator())
: DataTable(
// columnSpacing: defaultPadding,
columns: [
DataColumn(label: Text("Id")),
DataColumn(label: Text("Name")),
DataColumn(label: Text("Category")),
DataColumn(label: Text("Image")),
DataColumn(label: Text("Original Price")),
DataColumn(label: Text("Sale Price")),
DataColumn(label: Text("Discount")),
DataColumn(label: Text("Commission")),
DataColumn(label: Text("Date")),
],
rows: _listofRows(snapshot.data),
);
})),
_listofRows方法代码在这里
List<DataRow> _listofRows(snapshot) {
List<DataRow> newList = snapshot.docs.map((docSnapshot) {
return DataRow(cells: <DataCell>[
DataCell(Text(docSnapshot.data()['ProductID'].toString())),
DataCell(Text(docSnapshot.data()['Product Name'].toString())),
DataCell(Text(docSnapshot.data()['Category Name'].toString())),
DataCell(Text(docSnapshot.data()['Product ImageUrl'].toString())),
DataCell(Text(docSnapshot.data()['originalPrice'].toString())),
DataCell(Text(docSnapshot.data()['salePrice'].toString())),
DataCell(Text(docSnapshot.data()['Discount'].toString())),
DataCell(Text(docSnapshot.data()['Commission Rate'].toString())),
DataCell(Text(doctSnapshot.data()['Out of Stock Date'].toString())),
]);
}).toList();
return newList;
}
这是一个产品集合的文件示例在fireft数据库。(
解决方案是为map方法提供一个类型参数。
List<DataRow> _listofRows(snapshot) {
List<DataRow> newList = snapshot.docs.map<DataRow>((docSnapshot) {
return DataRow(cells: <DataCell>[
DataCell(Text(docSnapshot.data()['ProductID'].toString())),
DataCell(Text(docSnapshot.data()['Product Name'].toString())),
DataCell(Text(docSnapshot.data()['Category Name'].toString())),
DataCell(Text(docSnapshot.data()['Product ImageUrl'].toString())),
DataCell(Text(docSnapshot.data()['originalPrice'].toString())),
DataCell(Text(docSnapshot.data()['salePrice'].toString())),
DataCell(Text(docSnapshot.data()['Discount'].toString())),
DataCell(Text(docSnapshot.data()['Commission Rate'].toString())),
DataCell(Text(doctSnapshot.data()['Out of Stock Date'].toString())),
]);
}).toList();
return newList;
}
如果您想检查更多,有一个类似的类型推断的答案以意外的方式失败。
[感谢@Jonah Williams]:https://stackoverflow.com/users/4231909/jonah-williams
我使用超文本传输协议:^0.13.3,这是我的简单代码,当我运行此代码时,我得到了错误:"期望类型'Map的值
我正在开发一个web应用程序,使用flutraweb和restfulapi作为后端。因此,我尝试从api中获取数据,使用颤振模型对其进行序列化,然后返回结果。 问题是,我得到了这个结果 如何解决这个问题? 这是我的颤动代码: 模型 API连接 这是我想得到的JSON数据 请帮我拿这个。
我是新来的。当我映射响应体它给错误。 应为“Map”类型的值
大家好,我正在制作一个菜谱应用程序,它显示食物的名称、图像和ingredants,所以我制作了一个简单的主页,制作了requst和一个类,该类提供了我从spooncular使用的这个url的数据。通用域名格式: https://api.spoonacular.com/recipes/complexSearch?apiKey=8fe91444f092411fa6011b71fd6e582d 这是主课
我正面临着一个奇怪的颤动错误。我使用json序列化。 这是我的密码 我的web api发送的数据如下 这是数组的数组。 生成错误的代码是 它给出的错误 JSON数据这里是JSON数据格式的屏幕截图
我的JSON有点像这样: 我的模型类: 这是我的api调用: 如何获取图像。小班?如果我需要澄清我的问题,请告诉我。我得到的错误列表不是Map类型的子类型