title: How to fix the [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: NoSuchMethodError: The method '<=' was called on null. error?
body: <p>I have been getting this error and I have no idea how to fix it since the same code worked yesterday. (This is a test app that is using google maps and firebase firestore to save and query markers on a map)</p>
  <p>I thought this might have something to do with my flutter install, so I tried using the stable version and the beta version, but the same error occurred in both versions.</p>
  <p><strong>Here is the error:</strong></p>
  <pre><code>E/flutter (16809): [ERROR:flutter/lib/ui/ui_dart_state.cc(166)] Unhandled Exception: NoSuchMethodError: The method '&lt;=' was called on null.
  E/flutter (16809): Receiver: null
  E/flutter (16809): Tried calling: &lt;=(102.0)
  E/flutter (16809): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
  E/flutter (16809): #1      GeoFireCollectionRef.within.&lt;anonymous closure&gt;.&lt;anonymous closure&gt; (package:geoflutterfire/src/collection.dart:125:31)
  E/flutter (16809): #2      WhereIterator.moveNext (dart:_internal/iterable.dart:442:13)
  E/flutter (16809): #3      new List.from (dart:core-patch/array_patch.dart:50:19)
  E/flutter (16809): #4      new List.of (dart:core-patch/array_patch.dart:68:17)
  E/flutter (16809): #5      Iterable.toList (dart:core/iterable.dart:404:12)
  E/flutter (16809): #6      GeoFireCollectionRef.within.&lt;anonymous closure&gt; (package:geoflutterfire/src/collection.dart:126:16)
  E/flutter (16809): #7      _MapStream._handleData (dart:async/stream_pipe.dart:219:31)
  E/flutter (16809): #8      _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:157:13)
  E/flutter (16809): #9      _rootRunUnary (dart:async/zone.dart:1198:47)
  E/flutter (16809): #10     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
  E/flutter (16809): #11     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
  E/flutter (16809): #12     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
  E/flutter (16809): #13     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
  E/flutter (16809): #14     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:784:19)
  E/flutter (16809): #15     _StreamController._add (dart:async/stream_controller.dart:655:7)
  E/flutter (16809): #16     _StreamController.add (dart:async/stream_controller.dart:597:5)
  E/flutter (16809): #17     CombineLatestStream._buildController.&lt;anonymous closure&gt;.&lt;anonymous closure&gt;.&lt;anonymous closure&gt; (package:rxdart/src/streams/combine_latest.dart:293:30)
  E/flutter (16809): #18     _rootRunUnary (dart:async/zone.dart:1198:47)
  E/flutter (16809): #19     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
  E/flutter (16809): #20     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
  E/flutter (16809): #21     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
  E/flutter (16809): #22     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
  E/flutter (16809): #23     _ForwardingStreamSubscription._add (dart:async/stream_pipe.dart:127:11)
  E/flutter (16809): #24     _MapStream._handleData (dart:async/stream_pipe.dart:224:10)
  E/flutter (16809): #25     _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:157:13)
  E/flutter (16809): #26     _rootRunUnary (dart:async/zone.dart:1198:47)
  E/flutter (16809): #27     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
  E/flutter (16809): #28     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
  E/flutter (16809): #29     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
  E/flutter (16809): #30     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
  E/flutter (16809): #31     _ForwardingStreamSubscription._add (dart:async/stream_pipe.dart:127:11)
  E/flutter (16809): #32     _MapStream._handleData (dart:async/stream_pipe.dart:224:10)
  E/flutter (16809): #33     _ForwardingStreamSubscription._handleData (dart:async/stream_pipe.dart:157:13)
  E/flutter (16809): #34     _rootRunUnary (dart:async/zone.dart:1198:47)
  E/flutter (16809): #35     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
  E/flutter (16809): #36     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
  E/flutter (16809): #37     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
  E/flutter (16809): #38     _DelayedData.perform (dart:async/stream_impl.dart:611:14)
  E/flutter (16809): #39     _StreamImplEvents.handleNext (dart:async/stream_impl.dart:730:11)
  E/flutter (16809): #40     _PendingEvents.schedule.&lt;anonymous closure&gt; (dart:async/stream_impl.dart:687:7)
  E/flutter (16809): #41     _rootRun (dart:async/zone.dart:1182:47)
  E/flutter (16809): #42     _CustomZone.run (dart:async/zone.dart:1093:19)
  E/flutter (16809): #43     _CustomZone.runGuarded (dart:async/zone.dart:997:7)
  E/flutter (16809): #44     _CustomZone.bindCallbackGuarded.&lt;anonymous closure&gt; (dart:async/zone.dart:1037:23)
  E/flutter (16809): #45     _rootRun (dart:async/zone.dart:1190:13)
  E/flutter (16809): #46     _CustomZone.run (dart:async/zone.dart:1093:19)
  E/flutter (16809): #47     _CustomZone.runGuarded (dart:async/zone.dart:997:7)
  E/flutter (16809): #48     _CustomZone.bindCallbackGuarded.&lt;anonymous closure&gt; (dart:async/zone.dart:1037:23)
  E/flutter (16809): #49     _microtaskLoop (dart:async/schedule_microtask.dart:41:21)
  E/flutter (16809): #50     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50:5)
  E/flutter (16809): 
  </code></pre>
  <p>Here is my main.dart file:</p>
  <pre><code>import 'package:cloud_firestore/cloud_firestore.dart';
  import 'package:flutter/material.dart';
  import 'package:geoflutterfire/geoflutterfire.dart';
  import 'package:google_maps_flutter/google_maps_flutter.dart';
  import 'dart:async';
  import 'package:permission_handler/permission_handler.dart';
  import 'package:awesome_dialog/awesome_dialog.dart';
  import 'package:rxdart/rxdart.dart';
  
  void main() {
    runApp(MyApp());
  }
  
  class MyApp extends StatelessWidget {
    // This widget is the root of your application.
    @override
    Widget build(BuildContext context) {
      return MaterialApp(
        title: 'Flutter Demo',
        theme: ThemeData(
          // This is the theme of your application.
          //
          // Try running your application with &quot;flutter run&quot;. You'll see the
          // application has a blue toolbar. Then, without quitting the app, try
          // changing the primarySwatch below to Colors.green and then invoke
          // &quot;hot reload&quot; (press &quot;r&quot; in the console where you ran &quot;flutter run&quot;,
          // or simply save your changes to &quot;hot reload&quot; in a Flutter IDE).
          // Notice that the counter didn't reset back to zero; the application
          // is not restarted.
          primarySwatch: Colors.blue,
          // This makes the visual density adapt to the platform that you run
          // the app on. For desktop platforms, the controls will be smaller and
          // closer together (more dense) than on mobile platforms.
          visualDensity: VisualDensity.adaptivePlatformDensity,
        ),
        home: FireMap(),
      );
    }
  }
  
  class FireMap extends StatefulWidget {
    @override
    _FireMapState createState() =&gt; _FireMapState();
  }
  
  class _FireMapState extends State&lt;FireMap&gt; {
    Firestore firestore = Firestore.instance;
    Geoflutterfire geo = Geoflutterfire();
  
    GoogleMapController _mapController;
  
    Map&lt;MarkerId, Marker&gt; markers =
        &lt;MarkerId, Marker&gt;{}; // CLASS MEMBER, MAP OF MARKS
  
    BehaviorSubject&lt;double&gt; radius = BehaviorSubject.seeded(100.0);
    Stream&lt;dynamic&gt; query;
    StreamSubscription subscription;
  
    Future&lt;DocumentReference&gt; _addGeoPoint(LatLng coordinates) async {
      GeoFirePoint point = geo.point(
          latitude: coordinates.latitude, longitude: coordinates.longitude);
      return firestore
          .collection('locations')
          .add({'position': point.data, 'name': 'Yay I can be queried!'});
    }
  
    void _add() {
  //    var markerIdVal = MyWayToGenerateId();
      var markerIdVal = '123abc';
      final MarkerId markerId = MarkerId(markerIdVal);
  
      // creating a new MARKER
      final Marker marker = Marker(
        markerId: markerId,
        position: LatLng(24.150, -110.32
  //        center.latitude + sin(_markerIdCounter * pi / 6.0) / 20.0,
  //        center.longitude + cos(_markerIdCounter * pi / 6.0) / 20.0,
            ),
        infoWindow: InfoWindow(
            title: markerIdVal,
            snippet: '*',
            onTap: () {
              _onInfoWindowTapped(markerId);
            }),
        onTap: () {
          _onMarkerTapped(markerId);
        },
        draggable: true,
      );
  
      setState(() {
        // adding a new marker to map
        markers[markerId] = marker;
      });
    }
  
    void _addMarkerAtPosition(LatLng coordinates) {
      _addGeoPoint(coordinates);
      //    var markerIdVal = MyWayToGenerateId();
      var markerIdVal = coordinates.toString();
      final MarkerId markerId = MarkerId(markerIdVal);
  
      // creating a new MARKER
      final Marker marker = Marker(
        markerId: markerId,
        position: coordinates,
        infoWindow: InfoWindow(
            title: markerIdVal,
            snippet: '*',
            onTap: () {
              _onInfoWindowTapped(markerId);
            }),
        onTap: () {
          _onMarkerTapped(markerId);
        },
      );
  
      setState(() {
        // adding a new marker to map
        markers[markerId] = marker;
      });
    }
  
    void _onMarkerTapped(markerId) {
      print('MARKER TAPPED');
    }
  
    void _onInfoWindowTapped(MarkerId markerId) {
      print('MARKER INFO WINDOW TAPPED');
      //TODO SHOW INFO PANEL
      AwesomeDialog(
        context: context,
        dialogType: DialogType.NO_HEADER,
        title: markerId.value,
        desc: 'desc',
      )..show();
    }
  
    @override
    Widget build(BuildContext context) {
      return Scaffold(
        body: Stack(
          children: &lt;Widget&gt;[
            GoogleMap(
              initialCameraPosition:
                  CameraPosition(target: LatLng(24.150, -110.32), zoom: 10),
              myLocationEnabled: true,
              mapType: MapType.hybrid,
              markers: Set&lt;Marker&gt;.of(markers.values),
              onMapCreated: _onMapCreated,
              onTap: _onTap,
            ),
            Positioned(
              bottom: 100,
              right: 0,
              child: FlatButton(
                shape: CircleBorder(),
                child: Padding(
                  child: Icon(
                    Icons.pin_drop,
                    color: Colors.white,
                  ),
                  padding: EdgeInsets.all(8.0),
                ),
                color: Colors.green,
  //              onPressed: () =&gt; _add(),
              ),
            ),
            Positioned(
              bottom: 50,
              left: 10,
              child: Slider(
                min: 100.0,
                max: 500.0,
                divisions: 4,
                value: radius.value,
                label: 'Radius ${radius.value}km',
                activeColor: Colors.green,
                inactiveColor: Colors.green.withOpacity(0.2),
                onChanged: _updateQuery,
              ),
            )
          ],
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: (){
  //          _mapController.animateCamera(CameraUpdate.zoomOut());
          subscription.cancel();
          _startQuery();
          },
          child: Icon(Icons.zoom_out),
        ),
      );
    }
  
    void _updateMarkers(List&lt;DocumentSnapshot&gt; documentList) {
      print(documentList);
  
      markers.clear();
  
      setState(() {
        documentList.forEach((DocumentSnapshot document) {
          GeoPoint pos = document.data['position']['geopoint'];
          double distance = document.data['distance'];
          final MarkerId markerId =
              MarkerId(pos.latitude.toString() + '--' + pos.longitude.toString());
          var marker = Marker(
              markerId: markerId,
              position: LatLng(pos.latitude, pos.longitude),
              icon: BitmapDescriptor.defaultMarker,
              infoWindow: InfoWindow(
                  title: markerId.value,
                  snippet: '$distance kilometers from query center',
                  onTap: () {
                    _onInfoWindowTapped(markerId);
                  }));
  
          markers[markerId] = marker;
        });
      });
    }
  
    _startQuery() async {
      double screenWidth = MediaQuery.of(context).size.width;
      double screenHeight = MediaQuery.of(context).size.height;
      screenWidth *= MediaQuery.of(context).devicePixelRatio;
      screenHeight *= MediaQuery.of(context).devicePixelRatio;
  
      double middleX = screenWidth / 2;
      double middleY = screenHeight / 2;
  
      var pos = await _mapController
          .getLatLng(ScreenCoordinate(x: middleX.round(), y: middleY.round()));
  //    var pos = LatLng(24.150, -110.32);
  
      double lat = pos.latitude;
      double lng = pos.longitude;
      print('getLatLng Position: ' + pos.toString());
  
      var ref = firestore.collection('locations');
      GeoFirePoint center = geo.point(latitude: lat, longitude: lng);
  
      _mapController.animateCamera(CameraUpdate.newLatLng(pos));
  
      subscription = radius.switchMap((rad) {
        return geo.collection(collectionRef: ref).within(
            center: center, radius: rad, field: 'position', strictMode: true);
      }).listen(_updateMarkers);
    }
  
    _updateQuery(value) {
      setState(() {
        radius.add(value);
      });
    }
  
    void _onMapCreated(GoogleMapController controller) async {
      setState(() {
        _mapController = controller;
      });
      if (await Permission.location.request().isGranted) {
        print('PERMISSION GRANTED: LOCATION');
      }
      _startQuery();
    }
  
    void _onTap(coordinates) {
  //    _addMarkerAtPosition(coordinates);
      _addGeoPoint(coordinates);
      _mapController.animateCamera(CameraUpdate.newLatLng(coordinates));
    }
  
    @override
    void dispose() {
      subscription.cancel();
      super.dispose();
    }
  
  }
  </code></pre>
  <p>And my pubspec.ymal file:</p>
  <pre><code>name: googlemapstest
  description: Google Maps Test App
  
  # The following line prevents the package from being accidentally published to
  # pub.dev using `pub publish`. This is preferred for private packages.
  publish_to: 'none' # Remove this line if you wish to publish to pub.dev
  
  # The following defines the version and build number for your application.
  # A version number is three numbers separated by dots, like 1.2.43
  # followed by an optional build number separated by a +.
  # Both the version and the builder number may be overridden in flutter
  # build by specifying --build-name and --build-number, respectively.
  # In Android, build-name is used as versionName while build-number used as versionCode.
  # Read more about Android versioning at https://developer.android.com/studio/publish/versioning
  # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
  # Read more about iOS versioning at
  # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
  version: 1.0.0+1
  
  environment:
    sdk: &quot;&gt;=2.7.0 &lt;3.0.0&quot;
  
  dependencies:
    flutter:
      sdk: flutter
  
  
    # The following adds the Cupertino Icons font to your application.
    # Use with the CupertinoIcons class for iOS style icons.
    cupertino_icons: ^0.1.3
    google_maps_flutter: ^0.5.28+1
    firebase_core: ^0.4.5
    firebase_analytics: ^5.0.15
    cloud_firestore: ^0.13.7
  
  
  
    permission_handler: ^5.0.1+1
    awesome_dialog: ^1.1.3
    geoflutterfire: ^2.0.3+6
  
  
  dev_dependencies:
    flutter_test:
      sdk: flutter
  
  # For information on the generic Dart part of this file, see the
  # following page: https://dart.dev/tools/pub/pubspec
  
  # The following section is specific to Flutter.
  flutter:
  
    # The following line ensures that the Material Icons font is
    # included with your application, so that you can use the icons in
    # the material Icons class.
    uses-material-design: true
  </code></pre>
  <p>Thank you for your help!</p>