2016-10-29 9 views
0

私はAndroidアプリ用のGeoFireを設定しています。 Firebaseデータベースからデータを取得する際、次の例外が発生します。GeoFireデータに無効なフォーマット例外があります

どうやら、データベースからデータを取得しているが、まだ例外をスロー:(

私がデータを取得するには、次のコードを使用している

There was an error getting the GeoFire location: DatabaseError: User code called from the Firebase Database runloop threw an exception: W/System.err: java.lang.Throwable: GeoFire data has invalid format: {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

データベース内のデータがGeoFireによって無効とみなされるようなエラーメッセージが表示されます。あなたの質問にデータベースがどのように入力されたかを追加してください。 –

+0

@MichaelKarcher私はデータベース構造のスクリーンショットを添付しました。私はtest1とtest2の両方のデータを取得しようとしました。彼らは両方とも同じエラーを出します – msavox

答えて

0

GeoFireは、キーを使用していないようlatlon、またはLatitudeLongitudeのように、あなたの例ではありますが、「g」というプロパティの場所のカスタムエンコーディングがあります。 GeoFireで使用する場所を保存する正しい方法は、GeoFireによって提供されるsetLocationメソッドのようです。

データベースの構造がどのように表示されるかについては、How to save GeoFire coordinates along with other items in Firebase database?を参照してください。