如何在颤动中获取火警数据

问题描述 投票:0回答:1

当我在initState()中调用readLocationData()时,我的代码出现此错误:

未处理的例外:类型'GeoPoint'不是'可迭代'类型的子类型。

不确定如何解决此问题。我的Firebase Cloud Firestore有一个包含4个文档的列表,每个文档都有一个名为GeoPointgeopoint字段,每个文档都有一个手工编码的纬度和经度。

  Future<void> readLocationData() async {


    var query = await Firestore.instance.collection('bakeries').getDocuments();

    List<Map<dynamic, dynamic>> mainList = List<Map<dynamic, dynamic>>();

    query.documents.forEach((doc) {

      List<Map<dynamic, dynamic>> values = List.from(doc.data['geopoint']);
      print('geopoint' + values.toString() +'\n');

    });

    for(var i=0; i < mainList.length; i++) {
      Map<dynamic, dynamic> map = mainList[i];
      GeoPoint geopoint = map['geopoint'];
  print(geopoint.latitude.toString()+','+ geopoint.longitude.toString());
  }

  }
firebase flutter dart google-cloud-firestore
1个回答
0
投票

错误消息表明GeoPoint object不可迭代,这是正确的。我不确定您希望GeoPoint从那种意义上返回什么。

如果希望从List.from(doc.data['geopoint'])中获取经度和纬度,则必须在代码中显式访问这些属性。但是,那么我不确定您的GeoPoint中的keyvalue将变成什么。

© www.soinside.com 2019 - 2024. All rights reserved.