flutter firestore中的'GeoPoint'类型不是'String'类型的子类型

时间:2019-06-13 05:58:16

标签: flutter dart google-cloud-firestore

我正在尝试用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外观

enter image description here

1 个答案:

答案 0 :(得分:1)

问题看起来像是MarkerId(document['placeID']),它必须是字符串。

您可以尝试使用MarkerId(document['placeID'].toString())或根据标记的位置生成自己的自定义字符串。

当心您的placeId而不是placeID