我正在尝试用firestore扑扑Google地图,但是出了点问题。
这是我的代码
class StoreMap extends StatelessWidget {
const StoreMap({
Key key,
@required this.documents,
@required this.initialPosition,
@required this.mapController,
}) : super(key: key);
final List<DocumentSnapshot> documents;
final LatLng initialPosition;
final Completer<GoogleMapController> mapController;
@override
Widget build(BuildContext context) {
return GoogleMap(
initialCameraPosition: CameraPosition(
target: initialPosition,
zoom: 12,
),
markers: documents
.map((document) => Marker(
markerId: MarkerId(document['placeId']),
icon: BitmapDescriptor.defaultMarkerWithHue(_pinkHue),
position: LatLng(
document['location'].latitude,
document['location'].longitude,
),
infoWindow: InfoWindow(
title: document['name'],
snippet: document['address'],
),
))
.toSet(),
onMapCreated: (mapController) {
this.mapController.complete(mapController);
},
);
}
}
类型'GeoPoint'不是'字符串'类型的子类型
Firestore外观
答案 0 :(得分:1)
问题看起来像是MarkerId(document['placeID'])
,它必须是字符串。
您可以尝试使用MarkerId(document['placeID'].toString())
或根据标记的位置生成自己的自定义字符串。
当心您的placeId
而不是placeID
。