Android,从firebase数据库中获取价值 [英] Android, get value from firebase database
问题描述
我需要在我的地图上添加所有用户的标记。我将所有坐标保存在我的firebase中
我的数据库看起来像:
我收到错误 这是我的错误: FATAL EXCEPTION:main <步骤1)创建一个PoJo.class,其中包含您在数据库中的所有键,例如age,lat,lng等。 步骤2)现在调用这个获取所有数据的方法如下所示: I need to add markers from all users on my map. I'm saving all coordinates in my firebase My database looks like: So, when I want to get values: lat, lng from database(I do it in onMapReady method): I get an error Here i'm saving values ito my database: here is my error: 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)
Step 1) Make a PoJo.class which contains all the keys that are in database in you case like age,lat,lng etc. Step 2) Now call this method for getting all the data.like below
这篇关于Android,从firebase数据库中获取价值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
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)));
}
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);
处理:kz.mul.livemeet_finalversion,PID:24598
java.lang.NumberFormatException:对于输入字符串: https://livemeetfinalversion.firebaseio.com/ekeLu1W_1RU%3AAPA91bFt2knzJYknyWLpuFb1Wm1nxl0TkM-bWdkNrjaoPUmv5JP_hm6b64Hx3m3X805A3QR8paMAOABJN6DZcb99z_EfwGwadN1dUN6ngtqTbGwxD6iMLlP7IW6RvEzg9UTW7HQKHyT0/lat
。在java.lang中.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1306)
在java.lang.Double.parseDoubl e(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)$在com.google.android.gms.maps.internal.bw.a(:com.google.android.gms.DynamiteModulesB:82)处为b $ b;在com.google.maps.api.android.lib6处为
。 impl.bf.run(:com.google.android.gms.DynamiteModulesB:1805)
在android.os.Handler.handleCallback(Handler.java:751)
在android.os.Handler.dispatchMessage(Handler.java:95)
在android.os.Looper.loop(Looper.java:154)
在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)
preublic $ getAllUsersFromFirebas e(){
DatabaseReference UserRef = FirebaseDatabase.getInstance()。getReference()。child(Parent_child);
UserRef.keepSynced(true);
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);
}
//检查你的数组列表大小并传递给列表视图(fcmUsers.size()> 0)
{
fcmUsers arraylist传递给您的Map活动。
$ b} else
{
//显示没有用户的对话框
$ @Overri de
public void onCancelled(DatabaseError databaseError){
//用于处理数据库错误
}
});
}
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)));
}
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);
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
}
});
}