【问题标题】:Geofire query multiple referencesGeofire查询多个参考
【发布时间】:2017-01-06 17:25:46
【问题描述】:

我正在制作一个出租车应用程序,我使用 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 是用户选择的汽车类型。

【问题讨论】:

    标签: android firebase firebase-realtime-database geofire


    【解决方案1】:

    要更改引用,您必须创建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( ... );
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多