Geofire 查询多个引用
Geofire query multiple references
我正在制作一个出租车应用程序,我使用 Geofire 和 Geoquery 来找到最近的司机。
现在我有 3 种类型的汽车“3 座、4 座和 7 座”,用户可以在它们之间切换,我想更改查询以从正确的引用中获取数据。
我的参考和查询代码:
refDrivers = FirebaseDatabase.getInstance().getReference("drivers_locations_" + car_seats + "seat");
geoFireDrivers = new GeoFire(refDrivers);
geoQuery = geoFireDrivers.queryAtLocation(new GeoLocation(31.2551039, 30.0162619), 3);
其中 car_seats
是用户选择的车型。
要更改引用,您必须创建一个新的 GeoFire
实例,然后再次查询它,只需确保在附加新侦听器之前将侦听器删除到 GeoQuery
。
无法即时更改引用。
private GeoQuery geoQuery;
public void switchCarSeatType() {
if (geoQuery != null) {
// remove the previous listeners
geoQuery.removeAllListeners();
}
setGeoQuery(car_seats);
}
private void setGeoQuery(int car_seats) {
refDrivers = FirebaseDatabase.getInstance().getReference("drivers_locations_" + car_seats + "seat");
geoFireDrivers = new GeoFire(refDrivers);
geoQuery = geoFireDrivers.queryAtLocation(new GeoLocation(31.2551039, 30.0162619), 3);
geoQuery.addGeoQueryEventListener( ... );
}
我正在制作一个出租车应用程序,我使用 Geofire 和 Geoquery 来找到最近的司机。
现在我有 3 种类型的汽车“3 座、4 座和 7 座”,用户可以在它们之间切换,我想更改查询以从正确的引用中获取数据。
我的参考和查询代码:
refDrivers = FirebaseDatabase.getInstance().getReference("drivers_locations_" + car_seats + "seat");
geoFireDrivers = new GeoFire(refDrivers);
geoQuery = geoFireDrivers.queryAtLocation(new GeoLocation(31.2551039, 30.0162619), 3);
其中 car_seats
是用户选择的车型。
要更改引用,您必须创建一个新的 GeoFire
实例,然后再次查询它,只需确保在附加新侦听器之前将侦听器删除到 GeoQuery
。
无法即时更改引用。
private GeoQuery geoQuery;
public void switchCarSeatType() {
if (geoQuery != null) {
// remove the previous listeners
geoQuery.removeAllListeners();
}
setGeoQuery(car_seats);
}
private void setGeoQuery(int car_seats) {
refDrivers = FirebaseDatabase.getInstance().getReference("drivers_locations_" + car_seats + "seat");
geoFireDrivers = new GeoFire(refDrivers);
geoQuery = geoFireDrivers.queryAtLocation(new GeoLocation(31.2551039, 30.0162619), 3);
geoQuery.addGeoQueryEventListener( ... );
}