2017-06-08 28 views
0

マップ上のすべてのユーザーのマーカーを追加する必要があります。緯度、データベースからのLNG(私はonMapReady方法でそれを行う):私は値を取得したいとき、そうAndroid、firebaseデータベースから値を取得

enter image description here

:私は私のデータベースは次のようになります私のfirebase

にすべての座標を保存しています

int allUsers = 100; 
    while(allUsers >= 0) { 
     double latAll = Double.parseDouble(users.child("lat").toString()); 
     double lngAll = Double.parseDouble(users.child("lng").toString()); 
     mMap.addMarker(new MarkerOptions().position(new LatLng(latAll, lngAll))); 
    } 

私は私は私のデータベース伊藤値を保存しています。ここエラー

を得る:

ここで0
GPSTracker gpstracker = new GPSTracker(mContext, SearchActivity.this); 
       double locationLng = gpstracker.getLongitude(); 
       double locationLat = gpstracker.getLatitude(); 

       databaseReference.child("lng").setValue(locationLng); 
       databaseReference.child("lat").setValue(locationLat); 

私のエラーは、次のとおりです。

FATAL EXCEPTION: main Process: kz.mul.livemeet_finalversion, PID: 24598 java.lang.NumberFormatException: For input string: " https://livemeetfinalversion.firebaseio.com/ekeLu1W_1RU%3AAPA91bFt2knzJYknyWLpuFb1Wm1nxl0TkM-bWdkNrjaoPUmv5JP_hm6b64Hx3m3X805A3QR8paMAOABJN6DZcb99z_EfwGwadN1dUN6ngtqTbGwxD6iMLlP7IW6RvEzg9UTW7HQKHyT0/lat " at java.lang.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1306) at java.lang.Double.parseDouble(Double.java:547) at kz.mul.livemeet_finalversion.MapsActivity.onMapReady(MapsActivity.java:118) at com.google.android.gms.maps.SupportMapFragment$zza$1.zza(Unknown Source) at com.google.android.gms.maps.internal.zzt$zza.onTransact(Unknown Source) at android.os.Binder.transact(Binder.java:499) at com.google.android.gms.maps.internal.bw.a(:com.google.android.gms.DynamiteModulesB:82) at com.google.maps.api.android.lib6.impl.bf.run(:com.google.android.gms.DynamiteModulesB:1805) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6119) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)

+0

親子の名前は何ですか? – ashish

+0

エラーログを表示してください。 –

+0

解決済み:https://stackoverflow.com/questions/39552348/firebase-databaseexception-failed-to-convert-value-of-type-java-lang-long-to-st/45557421#45557421 –

答えて

1

ステップ1)あなたの中にデータベース内にあるすべてのキーが含まれていPoJo.classは年齢のような、緯度、LNGなど

小文字を作りますステップ2)次に、すべてのデータを取得するためにこのメソッドを呼び出します。

public void getAllUsersFromFirebase() { 
    DatabaseReference UserRef = FirebaseDatabase.getInstance().getReference().child("Parent_child"); 
    UserRef.keepSynced(true); 
    UserRef.addValueEventListener(new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      Iterator<DataSnapshot> dataSnapshots = dataSnapshot.getChildren().iterator(); 
      List<PoJo> fcmUsers = new ArrayList<>(); 
      while (dataSnapshots.hasNext()) { 
       DataSnapshot dataSnapshotChild = dataSnapshots.next(); 
       PoJo fcmUser = dataSnapshotChild.getValue(PoJo.class); 
       fcmUsers.add(fcmUser); 

      } 

      // Check your arraylist size and pass to list view like 
      if(fcmUsers.size()>0) 
      { 
       fcmUsers arraylist pass to your Map activity. 

      }else 
      { 
       // Display dialog for there is no user available. 
      } 

     } 

     @Override 
     public void onCancelled(DatabaseError databaseError) { 
       // for handling database error   
     } 
    }); 
} 
+0

それはあなたのために働いていますか? – ashish

+0

マップアクティビティにパスを書き込む私には明らかではありません –

関連する問題