2016-04-10 20 views
7

Firebaseのキー/フィールドの1つとして場所(latitideとlongitude)を保存しようとしています。彼らの例では、SFVehiclesは、情報が格納された後のクエリの方法を示していますが、私の問題は最初の場所に保存する方法です。Firebaseのロケーション情報を保存する方法

ブログの投稿GeoFire goes Mobileには、データの表示方法が示されていますが、locationフィールドにはどのような値が設定されていますか?

enter image description here

でも、私はFirebaseに他の種類の文字列を保存することができています。私はちょうど以下のコードを使用します。 質問はフィールドはどのようなデータ型ですか?location

 Firebase ref = new Firebase("https://myfirebaselink.firebaseio.com/"); 

     //User 
     alan = new User("Alan Turing", 1912); 


     alanRef.setValue(obj); 

私はList<String>するlocationを試してみましたが、それはうまくいきませんでした - 場所フィールドは以下のように見えた:

enter image description here

編集:より多くの研究では、this blog post by Googleを見つけましたが、彼らはありますキーとしても保存latitude1 and経度. This probably was written before GeoFireが導入されました。

+0

は、あなたの質問でJSONの木の絵を用意しました。 Firebaseデータベースの[Export]ボタンをクリックすると、実際のJSONをテキストとして置き換えてください。 JSONをテキストとして検索可能にすることで、実際のデータを使ってテストしたり、答えに使用したりすることができます。一般的には、これは良いことです。 –

+0

googlegeodeveloperのブログ記事はGeoFireを使用していません。したがって、GeoFireを使用する場合は、あなたとは関係ありません。 –

答えて

8

ようGeoFire for Java project has a great README、オブジェクトの種類が地理的位置であることをhere から見える、そのカバー(他の中で)setting location data:あなたが設定することができGeoFireで

と文字列キーで場所を照会します。キーの場所を設定するには、単にsetLocation()メソッドを呼び出します。この方法は、場所の緯度と経度を含むGeoLocationオブジェクトとして文字列や場所などのキーを渡されます。

geoFire.setLocation("firebase-hq", new GeoLocation(37.7853889, -122.4056973)); 

書き込みが正常にサーバーに保存されたかどうかを確認するには、追加することができます場所を削除し、データベースSIMPLからそれを削除するには

geoFire.setLocation("firebase-hq", new GeoLocation(37.7853889, -122.4056973), new GeoFire.CompletionListener() { 
    @Override 
    public void onComplete(String key, FirebaseError error) { 
     if (error != null) { 
      System.err.println("There was an error saving the location to GeoFire: " + error); 
     } else { 
      System.out.println("Location saved on server successfully!"); 
     } 
    } 
}); 

setLocation()コールへGeoFire.CompletionListener yはremoveLocationに場所の鍵を渡す:

geoFire.removeLocation("firebase-hq"); 
+0

おかげさまで、readmeはとても良く、すべての操作をはっきりと説明しています。愚かな私はそれを逃した、ありがとう。 – user1406716

2

それはラインで83

関連する問題