如何将从cloud_firestore接收的数据转换为Map

时间:2019-11-26 02:38:59

标签: dictionary flutter dart google-cloud-firestore cloud

cloud_firestore数据库中的数据为JSON形式。但是,如何从Map列表中的JSON转换数据? The dummy data in my firestore

1 个答案:

答案 0 :(得分:1)

数据到地图列表:

final CollectionReference ref = Firestore.instance.collection('food');
List<Map<String, dynamic>> listOfMaps = [];
await ref.getDocuments().then((QuerySnapshot snapshot) {
  listOfMaps =
      snapshot.documents.map((DocumentSnapshot documentSnapshot) {
    return documentSnapshot.data;
  }).toList();
});
print(listOfMaps);

以防万一,如果您想使用更好的方法。将数据解析为对象列表:

1)创建一个模型类:

class Food {
  String affordability;
  String title;

  Food.fromJson(Map<String, dynamic> jsonData) {
    this.affordability = jsonData['affordability'];
    this.title = jsonData['title'];
  }
}

2)转换为食物列表:

final CollectionReference ref = Firestore.instance.collection('food');
List<Food> list = [];
await ref.getDocuments().then((QuerySnapshot snapshot) {
  list = snapshot.documents.map((DocumentSnapshot documentSnapshot) {
    return Food.fromJson(documentSnapshot.data);
  }).toList();
});
print(list);