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}