将documentSnapshot转换为对象列表

时间:2020-04-16 20:36:57

标签: flutter dart google-cloud-firestore

从Firestone返回的我的文档快照包含

{Carrots: {quantity: 2, metric: Kilograms, name: Carrots, category: Fresh Food, inShoppingList: 0}, Test Item: {quantity: 3, metric: Kilograms, name: Test Item, category: Fresh Food, inShoppingList: 0}}

我需要将其转换为包含字段名称,数量,度量和类别的项目对象列表。我正在从有状态窗口小部件访问快照,

DocumentSnapshot i = Provider.of<DocumentSnapshot>(context) ?? [];

如何将此DocumentSnapshot i转换为对象列表?

List<Item> it = i.data.map((k,v){
  return Item(name: v['name'], category: v['category']);
}).toList();

我尝试使用地图功能,但出现以下错误

type '(dynamic, dynamic) => Item' is not a subtype of type '(dynamic, dynamic) => MapEntry<dynamic, dynamic>' of 'transform'

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以像snapshot.data.documents[index][<Key value>]这样使用,以获取物品的价值