Unable to get callback Geofire.onKeyEntered

57 Views Asked by At
void initGeoFireListener() {
    Geofire.initialize("availableDrivers");
    print(position!.longitude.toString() + " " + position!.latitude.toString());
    //Comment[enter image description here][1]
    try {
      print("this is a TRY");

      Geofire.queryAtLocation(position!.longitude, position!.latitude, 10)!
          .listen((map) {
        if (map != null) {
          var callBack = map["callBack"];

          print("map =" + map.toString());
          print("callback = " + callBack);

          switch (callBack) {
            case Geofire.onKeyEntered:
              nearByAvailableDrivers nearbyavailabledrivers =
                  nearByAvailableDrivers();
              nearbyavailabledrivers.key = map["key"];
              nearbyavailabledrivers.latitude = map["latitude"];
              nearbyavailabledrivers.longitude = map["longitude"];
              GeoFireAssistant.nearByAvailableDriversList
                  .add(nearbyavailabledrivers);
              if (nearbyavailabledriverskeyLoaded == true) {
                print("onkeyEntered");
                updateAvailableDirverOnMap();
              } else {
                print("no drives available");
              }
              break;

            case Geofire.onKeyExited:
              print("onKeyExited");
              GeoFireAssistant.removeDriverFromList(map["key"]);
              updateAvailableDirverOnMap();
              break;

            case Geofire.onKeyMoved:
              print("onKeyMoved");

              nearByAvailableDrivers nearbyavailabledrivers =
                  nearByAvailableDrivers();

              nearbyavailabledrivers.key = map["key"];
              nearbyavailabledrivers.latitude = map["latitude"];
              nearbyavailabledrivers.longitude = map["longitude"];
              GeoFireAssistant.updateDriverNearbyLocation(
                  nearbyavailabledrivers);
              updateAvailableDirverOnMap();
              break;

            case Geofire.onGeoQueryReady:
              // All Intial Data is loaded
              print("onGeoQueryReady");
              nearbyavailabledriverskeyLoaded = true;
             
              //updateAvailableDirverOnMap();
              break;
          }
        } else {
          print("this is a CATCH");
        }

        setState(() {});
        //Comment
      });
    } catch (e) {
      print("error = " + e.toString());
    }
  }

Database

Given above is my code. I am trying to get the nearest drivers as I am working on a taxi booking application.

I am using flutter_geofire: ^2.0.0

I am trying to get the availableDrivers from Real Time Database but my (map) response is map ={result: [], callBack: onGeoQueryReady}

0

There are 0 best solutions below