无法获得回调 Geofire.onKeyEntered

问题描述 投票:0回答:0
void initGeoFireListener() {
    Geofire.initialize("availableDrivers");
    print(position!.longitude.toString() + " " + position!.latitude.toString());
    //Comment
    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());
    }
  }

上面是我的代码。我正在尝试联系最近的司机,因为我正在处理出租车预订应用程序。

我正在使用 flutter_geofire:^2.0.0

感谢您的帮助。 谢谢。

我正在尝试从实时数据库中获取可用的驱动程序,但我的(地图)响应是 map ={result: [], callBack: onGeoQueryReady}

flutter firebase firebase-realtime-database geofire
© www.soinside.com 2019 - 2024. All rights reserved.