NoSuchMethodError:在 null 上调用了方法“toJson”。- 在 Flutter 中使用 Google 地图和 Firestore

Ani*_*udh 5 google-maps flutter

我正在尝试根据保存在我的云 Firestore 中的位置获取地图上的标记\n我用 Medium - Google Maps in Flutter上的教程编写了它\n我在通过 Navigator.push() 调用以下类时遇到此错误

\n
    // to implememnt\n\nimport \'dart:async\';\n//import \'dart:html\';\n\nimport \'package:basicSignIn/Global/color.dart\';\nimport \'package:cloud_firestore/cloud_firestore.dart\';\nimport \'package:flutter/material.dart\';\nimport \'package:flutter_spinkit/flutter_spinkit.dart\';\nimport \'package:fluttertoast/fluttertoast.dart\';\nimport \'package:geolocator/geolocator.dart\';\nimport \'package:google_maps_flutter/google_maps_flutter.dart\';\n\nclass MapShopPicker extends StatefulWidget {\n  @override\n  _MapShopPickerState createState() => _MapShopPickerState();\n}\n\nvar pposition;\n\nvar shopChosenValue = null;\n\nclass _MapShopPickerState extends State<MapShopPicker> {\n  Completer<GoogleMapController> _controller = Completer();\n\n  String _locationMessage = "";\n\n  void _getCurrentLocation() async {\n    final position = await Geolocator()\n        .getCurrentPosition(desiredAccuracy: LocationAccuracy.high);\n    print(position);\n    pposition = position;\n\n    setState(() {\n      pposition = position;\n      _locationMessage = "${position.latitude}, ${position.longitude}";\n    });\n  }\n\n  @override\n  void initState() {\n    _getCurrentLocation();\n    getClients();\n    super.initState();\n  }\n\n  @override\n  Widget build(BuildContext context) {\n    return Scaffold(\n      appBar: AppBar(\n        actions: <Widget>[\n          FlatButton(onPressed: _getCurrentLocation, child: Text(\'get loc\'))\n        ],\n      ),\n      body: Stack(\n        children: <Widget>[\n          _googlemap(context),\n          suggestion(context),\n          /*_zoomout(),\n          _zoomin(),\n          _buildContainer(),*/\n        ],\n      ),\n    );\n  }\n\n  Widget _googlemap(BuildContext context) {\n    return Container(\n      height: MediaQuery.of(context).size.height,\n      width: MediaQuery.of(context).size.width,\n      child: GoogleMap(\n        mapType: MapType.normal,\n        initialCameraPosition: CameraPosition(\n          target: pposition == null\n              ? LatLng(\n                  20.5937,\n                  78.9629,\n                )\n              : LatLng(pposition.latitude, pposition.longitude),\n          zoom: 15.4,\n        ),\n        circles: {myLOC},\n        markers: Set<Marker>.of(markers.values),\n        onMapCreated: (GoogleMapController controller) {\n          _controller.complete(controller);\n        },\n      ),\n    );\n  }\n\n  CollectionReference collectionReference =\n      Firestore.instance.collection(\'shopData\');\n\n  Widget suggestion(BuildContext context) {\n    return SizedBox(\n      height: 80,\n      width: 200,\n      child: Container(\n        decoration: BoxDecoration(\n          color: Colors.white,\n          borderRadius: BorderRadius.all(\n            Radius.circular(30),\n          ),\n        ),\n        child: StreamBuilder(\n          stream: collectionReference.snapshots(),\n          builder:\n              (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {\n            if (!snapshot.hasData)\n              return new SpinKitFadingCircle(\n                color: mydRed,\n                size: 50,\n              );\n\n            if (snapshot.error == true) {\n              Fluttertoast.showToast(\n                  msg: snapshot.error.toString(),\n                  toastLength: Toast.LENGTH_LONG,\n                  gravity: ToastGravity.BOTTOM,\n                  timeInSecForIosWeb: 2,\n                  backgroundColor: bg,\n                  textColor: mydRed,\n                  fontSize: 16.0);\n            }\n\n            return new NotificationListener<OverscrollIndicatorNotification>(\n              onNotification: (overscroll) {\n                overscroll.disallowGlow();\n              },\n              child: ListView(\n                children: snapshot.data.documents.map(\n                  (document) {\n                    cardBuilder(\n                        context: context, name: document[\'Name\'].toString());\n                  },\n                ).toList(growable: true),\n              ),\n            );\n          },\n        ),\n      ),\n    );\n  }\n\n  Widget cardBuilder({\n    BuildContext context,\n    String name,\n  }) {\n    return Align(child: Card(), alignment: Alignment.bottomLeft,);\n  }\n\n  //Markers below (mostly)\n\n  getClients() {\n    collectionReference.getDocuments().then((docs) {\n      if (docs.documents.isNotEmpty) {\n        for (int i = 0; i < docs.documents.length; ++i) {\n          initMarker(docs.documents[i].data, docs.documents[i].documentID);\n        }\n      }\n    });\n  }\n\n  Map<MarkerId, Marker> markers = <MarkerId, Marker>{};\n\n  initMarker(request, requestId) {\n    var markerIdVal = requestId;\n    final MarkerId markerId = MarkerId(markerIdVal);\n\n    //create marker\n    final Marker marker = Marker(\n      markerId: markerId,\n      position: LatLng(request[\'Lat\'], request[\'Lon\']),\n      infoWindow: InfoWindow(\n        title : request[\'Name\'], snippet: request[\'Call\']\n      ),\n\n    );\n\n    setState(() {\n      markers[markerId] = marker;\n      print (markerId);\n    });\n  }\n\n  Circle myLOC = Circle(\n    circleId: CircleId(\'myLOC\'),\n    center: pposition,\n    radius: 5,\n    fillColor: mydRed.withOpacity(0.4),\n    strokeColor: mydRed,\n    strokeWidth: 2,\n  );\n}\n\nclass UserLocation {\n  final double latitude;\n  final double longitude;\n\n  UserLocation({this.latitude, this.longitude});\n}\n\n/*StreamBuilder(\n        stream: collectionReference.snapshots(),\n        builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {\n          if (!snapshot.hasData)\n            return new SpinKitFadingCircle(\n              color: mydRed,\n              size: 50,\n            );\n\n          if (snapshot.error == true) {\n            Fluttertoast.showToast(\n                msg: snapshot.error.toString(),\n                toastLength: Toast.LENGTH_LONG,\n                gravity: ToastGravity.BOTTOM,\n                timeInSecForIosWeb: 2,\n                backgroundColor: bg,\n                textColor: mydRed,\n                fontSize: 16.0);\n          }\n\n          return new NotificationListener<OverscrollIndicatorNotification>(\n            onNotification: (overscroll) {\n              overscroll.disallowGlow();\n            },\n            child: ListView(\n              children: snapshot.data.documents.map(\n                (document) {\n                  return new AppointmentCard(\n                    name: document[\'Name\'].toString(),\n                    age: document[\'Age\'].toString(),\n                    mob: document[\'Mob\'].toString(),\n                    date: document[\'Date\'].toString(),\n                    serviceH: document[\'ServiceH\'].toString(),\n                    serviceS: document[\'ServiceS\'].toString(),\n                    //image: document[\'ImagePath\'].toString(),\n                  );\n                },\n              ).toList(),\n            ),\n          );\n        },\n      ),\n      */\n
Run Code Online (Sandbox Code Playgroud)\n

控制台中的错误:-

\n
\\I/flutter (25298): \xe2\x95\x90\xe2\x95\x90\xe2\x95\xa1 EXCEPTION CAUGHT BY WIDGETS LIBRARY \xe2\x95\x9e\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\xe2\x95\x90\nI/flutter (25298): The following NoSuchMethodError was thrown building GoogleMap(dirty, state: _GoogleMapState#0f8ef):\nI/flutter (25298): The method \'toJson\' was called on null.\nI/flutter (25298): Receiver: null\nI/flutter (25298): Tried calling: toJson()\nI/flutter (25298): The relevant error-causing widget was:\nI/flutter (25298):   GoogleMap\nI/flutter (25298):   file:///D:/MYD/appBuilds/mydSalon/firebaseWorking/basicSignIn/lib/Navs/googleMapChoose.dart:71:14\nI/flutter (25298): When the exception was thrown, this was the stack:\nI/flutter (25298): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)\nI/flutter (25298): #1      Circle.toJson (package:google_maps_flutter_platform_interface/src/types/circle.dart:139:35)\nI/flutter (25298): #2      serializeCircleSet.<anonymous closure> (package:google_maps_flutter_platform_interface/src/types/utils/circle.dart:21:60)\nI/flutter (25298): #3      MappedIterator.moveNext (dart:_internal/iterable.dart:395:20)\nI/flutter (25298): #4      new List.from (dart:core-patch/array_patch.dart:35:29)\nI/flutter (25298): #5      Iterable.toList (dart:core/iterable.dart:400:12)\nI/flutter (25298): #6      serializeCircleSet (package:google_maps_flutter_platform_interface/src/types/utils/circle.dart:21:70)\nI/flutter (25298): #7      _GoogleMapState.build (package:google_maps_flutter/src/google_map.dart:225:23)\nI/flutter (25298): #8      StatefulElement.build (package:flutter/src/widgets/framework.dart:4619:28)\nI/flutter (25298): #9      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4502:15)\nI/flutter (25298): #10     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4675:11)\nI/flutter (25298): #11     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #12     StatefulElement.update (package:flutter/src/widgets/framework.dart:4707:5)\nI/flutter (25298): #13     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #14     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5837:14)\nI/flutter (25298): #15     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #16     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #17     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #18     StatelessElement.update (package:flutter/src/widgets/framework.dart:4583:5)\nI/flutter (25298): #19     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #20     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5522:32)\nI/flutter (25298): #21     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5957:17)\nI/flutter (25298): #22     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #23     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #24     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #25     StatelessElement.update (package:flutter/src/widgets/framework.dart:4583:5)\nI/flutter (25298): #26     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #27     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #28     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #29     ProxyElement.update (package:flutter/src/widgets/framework.dart:4862:5)\nI/flutter (25298): #30     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #31     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #32     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #33     ProxyElement.update (package:flutter/src/widgets/framework.dart:4862:5)\nI/flutter (25298): #34     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #35     RenderObjectElement.updateChildren (package:flutter/src/widgets/framework.dart:5522:32)\nI/flutter (25298): #36     MultiChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5957:17)\nI/flutter (25298): #37     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #38     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #39     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4675:11)\nI/flutter (25298): #40     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #41     StatefulElement.update (package:flutter/src/widgets/framework.dart:4707:5)\nI/flutter (25298): #42     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #43     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #44     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #45     ProxyElement.update (package:flutter/src/widgets/framework.dart:4862:5)\nI/flutter (25298): #46     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #47     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #48     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4675:11)\nI/flutter (25298): #49     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #50     StatefulElement.update (package:flutter/src/widgets/framework.dart:4707:5)\nI/flutter (25298): #51     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #52     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5837:14)\nI/flutter (25298): #53     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #54     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #55     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #56     StatelessElement.update (package:flutter/src/widgets/framework.dart:4583:5)\nI/flutter (25298): #57     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #58     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5837:14)\nI/flutter (25298): #59     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #60     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #61     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4675:11)\nI/flutter (25298): #62     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #63     StatefulElement.update (package:flutter/src/widgets/framework.dart:4707:5)\nI/flutter (25298): #64     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #65     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #66     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4675:11)\nI/flutter (25298): #67     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #68     StatefulElement.update (package:flutter/src/widgets/framework.dart:4707:5)\nI/flutter (25298): #69     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #70     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #71     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #72     ProxyElement.update (package:flutter/src/widgets/framework.dart:4862:5)\nI/flutter (25298): #73     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #74     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #75     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #76     ProxyElement.update (package:flutter/src/widgets/framework.dart:4862:5)\nI/flutter (25298): #77     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #78     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #79     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4675:11)\nI/flutter (25298): #80     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #81     StatefulElement.update (package:flutter/src/widgets/framework.dart:4707:5)\nI/flutter (25298): #82     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #83     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #84     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4675:11)\nI/flutter (25298): #85     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #86     StatefulElement.update (package:flutter/src/widgets/framework.dart:4707:5)\nI/flutter (25298): #87     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #88     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5837:14)\nI/flutter (25298): #89     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #90     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #91     Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #92     StatelessElement.update (package:flutter/src/widgets/framework.dart:4583:5)\nI/flutter (25298): #93     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #94     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5837:14)\nI/flutter (25298): #95     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #96     SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5837:14)\nI/flutter (25298): #97     Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #98     ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4527:16)\nI/flutter (25298): #99     StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4675:11)\nI/flutter (25298): #100    Element.rebuild (package:flutter/src/widgets/framework.dart:4218:5)\nI/flutter (25298): #101    StatefulElement.update (package:flutter/src/widgets/framework.dart:4707:5)\nI/flutter (25298): #102    Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #103    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5837:14)\nI/flutter (25298): #104    Element.updateChild (package:flutter/src/widgets/framework.dart:3201:15)\nI/flutter (25298): #105    SingleChildRenderObjectElement.update (package:flutter/src/widgets/framework.dart:5