2016-10-11 18 views
0

に保存された特定の場所の緯度と経度のデータセットを取得、私はこのように設定します。私は現在、緯度、経度、名前を取得するためにハードコードされた方法を使用しています:は私のFirebaseデータベースでFirebase

Firebase locationRef = mRootRef.child("loc"); 
     locationRef.addValueEventListener(new com.firebase.client.ValueEventListener() { 
      @Override 
      public void onDataChange(com.firebase.client.DataSnapshot dataSnapshot) { 

       Double latitude = dataSnapshot.child("0").getValue(Double.class); 
       Double longitude = dataSnapshot.child("1").getValue(Double.class); 
       String name = dataSnapshot.child("name").getValue(String.class);} 
      @Override 
      public void onCancelled(FirebaseError firebaseError) { 
       throw firebaseError.toException(); 

      } 
     }); 

画像に示すように、今、私は私のデータを設定します。

New Firebase data set

私がデータを取得するにはどうすればよいですloc1とloc2の変数(01name)の値を、ハードコーディングなしで簡単に取得できるようにします。将来、場所の数も増えます。

答えて

0
私はそれはあなたが他のいくつかの配列にその情報を取ることができ LOCの下で、あなたのすべての場所を提供しますforeachの)あなたがGetChildrenメソッドを(追加する必要が

をfolowingのようなものが必要だと思う

Firebase locationRef = mRootRef.child("loc"); 
locationRef.addValueEventListener(new com.firebase.client.ValueEventListener() { 
    @Override 
    public void onDataChange(com.firebase.client.DataSnapshot dataSnapshot) { 


     for (DataSnapshot snapm: dataSnapshot.getChildren()) { 

      Double latitude = snapm.child("0").getValue(Double.class); 
      Double longitude = snapm.child("1").getValue(Double.class); 
      String name = snapm.child("name").getValue(String.class);} 
     } 
    @Override 
    public void onCancelled(FirebaseError firebaseError) { 
     throw firebaseError.toException(); 

    } 
}); 
+0

ので、ありがとう多く! – jwen

関連する問題