GeoFire数据格式异常无效

时间:2016-10-29 16:52:35

标签: android firebase firebase-realtime-database geofire

我正在为我的Android应用设置GeoFire。在从Firebase数据库检索数据开始时,我收到以下异常。

  

获取GeoFire位置时出错:DatabaseError:从Firebase数据库runloop调用的用户代码引发异常:    W / System.err:java.lang.Throwable:GeoFire数据格式无效:{lon = 74.529964,lat = 31.4479225}

显然,它正在从数据库中检索数据但仍然抛出异常:(

我使用以下代码检索数据:

geoFire.getLocation("test1", new LocationCallback() {
        @Override
        public void onLocationResult(String key, GeoLocation location) {
            if (location != null) {
                System.out.println(String.format("The location for key %s is [%f,%f]", key, location.latitude, location.longitude));
            } else {
                System.out.println(String.format("There is no location for key %s in GeoFire", key));
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            System.err.println("There was an error getting the GeoFire location: " + databaseError);
        }
    });

由于我是firebase的新手,有什么明显的遗漏吗?This is how my firebase database looks like

1 个答案:

答案 0 :(得分:0)

GeoFire似乎没有使用您的示例中的密钥latlon,或LatitudeLongitude,而是使用了一些自定义的位置编码称为“g”的属性。保存位置以供GeoFire使用的正确方法似乎是GeoFire提供的setLocation方法。

有关数据库中结构应如何显示的讨论,请参阅How to save GeoFire coordinates along with other items in Firebase database?