Как получить данные пожарного магазина во флаттере - PullRequest
1 голос
/ 25 марта 2020

Мой код получает эту ошибку, когда я вызываю readLocationData () в моем initState ():

Необработанное исключение: тип 'GeoPoint' не является подтипом типа 'Iterable'.

Не уверен, как это исправить. Мой Firebase Cloud Firestore имеет список из 4 документов, каждый с полем GeoPoint с именем geopoint, каждый с широтой и долготой, закодированными вручную.

  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());
  }

  }

1 Ответ

1 голос
/ 25 марта 2020

Сообщение об ошибке указывает на то, что объект GeoPoint не повторяется, что является правильным. Я не уверен, что вы ожидаете, что List.from(doc.data['geopoint']) вернется в этом смысле.

Если вы ожидаете, что широта и долгота будут взяты из GeoPoint, вам придется явно обращаться к этим свойствам в вашем код. Но тогда я не уверен, какими станут key и value в вашем Map<dynamic, dynamic>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...