0

I am trying to query database using geoflutterfire. Everything seems to work well but when i query, i get this error: The latitude and longitudes are gotten programmatically from geolocator plugin, yet flutter throws the error below. enter image description here

 E/flutter ( 3310): [ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: NoSuchMethodError: The getter 'latitude' was called on null.
E/flutter ( 3310): Receiver: null
E/flutter ( 3310): Tried calling: latitude
E/flutter ( 3310): #0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
E/flutter ( 3310): #1      _DoctorsStreamState._animateToUser (package:firstaidpatient/serviceproviders_screen/doctors_stream.dart:296:30)
E/flutter ( 3310): <asynchronous suspension>
E/flutter ( 3310): #2      _DoctorsStreamState._onMapCreated.<anonymous closure> (package:firstaidpatient/serviceproviders_screen/doctors_stream.dart:268:7)
E/flutter ( 3310): #3      State.setState (package:flutter/src/widgets/framework.dart:1233:30)
E/flutter ( 3310): #4      _DoctorsStreamState._onMapCreated (package:firstaidpatient/serviceproviders_screen/doctors_stream.dart:267:5)
E/flutter ( 3310): #5      _GoogleMapState.onPlatformViewCreated (package:google_maps_flutter/src/google_map.dart:307:26)
E/flutter ( 3310): <asynchronous suspension>
E/flutter ( 3310): #6      AndroidViewController._create (package:flutter/src/services/platform_views.dart:636:15)
E/flutter ( 3310): <asynchronous suspension>
E/flutter ( 3310): #7      AndroidViewController.setSize (package:flutter/src/services/platform_views.dart:550:14)
E/flutter ( 3310): #8      RenderAndroidView._sizePlatformView (package:flutter/src/rendering/platform_view.dart:175:29)
E/flutter ( 3310): #9      RenderAndroidView.performResize (package:flutter/src/rendering/platform_view.dart:156:5)
E/flutter ( 3310): #10     RenderObject.layout (package:flutter/src/rendering/object.dart:1746:9)
E/flutter ( 3310): #11     RenderProxyBoxMixin.performLayout (package:flutter/src/rendering/proxy_box.dart:111:13)
E/flutter ( 3310): #12     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter ( 3310): #13     RenderStack.performLayout (package:flutter/src/rendering/stack.dart:556:15)
E/flutter ( 3310): #14     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter ( 3310): #15     RenderConstrainedBox.performLayout (package:flutter/src/rendering/proxy_box.dart:266:13)
E/flutter ( 3310): #16     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter ( 3310): #17     RenderPositionedBox.performLayout (package:flutter/src/rendering/shifted_box.dart:394:13)
E/flutter ( 3310): #18     RenderObject.layout (package:flutter/src/rendering/object.dart:1767:7)
E/flutter ( 3310): #19     MultiChildLayoutDelegate.layoutChild (package:flutter/src/rendering/custom_layout.dart:171:11)
E/flutter ( 3310): #20     _ScaffoldLayout.performLayout (package:flutter/src/material/scaffold.dart:484:7)
E/flutter ( 3310): #21     MultiChildLayoutDelegate._callPerformLayout (package:flutter/src/rendering/custom_layout.dart:240:7)
E/flutter ( 3310): #22     RenderCustomMultiChildLayoutBox.performLayout (package:flutter/src/rendering/custom_layout.dart:399:14)
E/flutter ( 3310): #23     RenderObject._layoutWithoutResize (package:flutter/src/rendering/object.dart:1630:7)
E/flutter ( 3310): #24     PipelineOwner.flushLayout (package:flutter/src/rendering/object.dart:887:18)
E/flutter ( 3310): #25     RendererBinding.drawFrame (package:flutter/src/rendering/binding.dart:402:19)
E/flutter ( 3310): #26     WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:884:13)
E/flutter ( 3310): #27     RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:284:5)
E/flutter ( 3310): #28     SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1113:15)
E/flutter ( 3310): #29     SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1052:9)
E/flutter ( 3310): #30     SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:968:5)
E/flutter ( 3310): #31     _rootRun (dart:async/zone.dart:1184:13)
E/flutter ( 3310): #32     _CustomZone.run (dart:async/zone.dart:1077:19)
E/flutter ( 3310): #33     _CustomZone.runGuarded (dart:async/zone.dart:979:7)
E/flutter ( 3310): #34     _invoke (dart:ui/hooks.dart:261:10)
E/flutter ( 3310): #35     _drawFrame (dart:ui/hooks.dart:219:3)

Could someone explain what the problem is? All my coordinates are correctly acquired and stored on firestore.

The query was called on initState and it gave the above error and don't produce any result on the google Map

 _startQuery() async {
    try {
      // Get querying phone location
      var pos = await geoLocator.getCurrentPosition();
      double userLatitude = pos.latitude;
      double userLongitude = pos.longitude;
      // get center points from users location
      GeoFirePoint center = geoflutterfire.point(
          latitude: userLatitude, longitude: userLongitude);
      stream = radius.switchMap((rad) {
        //make a firestore reference
        var ref = _firestore.collection('myLocation');
        //query data from firestore
        return geoflutterfire.collection(collectionRef: ref).within(
            center: center, radius: rad, field: 'position', strictMode: true);
      });
    } catch (e) {
      print(e);
    }
  }
Oscar Ogar
  • 13
  • 5
  • //the listener is in this method void _onMapCreated(GoogleMapController controller) { setState(() { _animateToUser(); mapController = controller; //start listening after map is created stream.listen((List documentList) { _updateMarkers(documentList); }); }); } – Oscar Ogar Jul 01 '20 at 04:52
  • Not sure if this will help but try calling the query from `addPostFrameCallback` [for example](https://stackoverflow.com/a/50682918/13625305) – dev-aentgs Jul 01 '20 at 06:35
  • the addPostFrameCallback prevented the error but the query did not bring any result. I was thinking of something. Do you think the query is failing because GeoFire relies on real-time data to get a successful query? maybe it is because I do not have active users but mock locations stored on firebase? I can send you the whole code for the map and query section to take a closer look – Oscar Ogar Jul 01 '20 at 07:10
  • Not sure about that, i haven't worked with GeoFire . – dev-aentgs Jul 01 '20 at 07:24
  • can you upload a screenshot of firebase table strcuture? – Deepak Ror Jul 02 '20 at 04:10
  • OK. I have done that. I can even give you my git repo. not a big deal – Oscar Ogar Jul 02 '20 at 13:49
  • kindly take a look at this https://stackoverflow.com/questions/62716609/flutter-failed-assertion-line-4138-pos-12-debuglifecyclestate-elementli – Oscar Ogar Jul 03 '20 at 13:39

0 Answers0