当我在initState()中调用readLocationData()时,我的代码出现此错误:
未处理的例外:类型'GeoPoint'不是'可迭代'类型的子类型。
不确定如何解决此问题。我的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());
}
}
错误消息表明GeoPoint
object不可迭代,这是正确的。我不确定您希望GeoPoint
从那种意义上返回什么。
如果希望从List.from(doc.data['geopoint'])
中获取经度和纬度,则必须在代码中显式访问这些属性。但是,那么我不确定您的GeoPoint
中的key
和value
将变成什么。