Dieses ist, wie ich es aussehen soll, aber ich bin immer null Objektreferenz innerhalb von (DataSnapshot wayPointsChild : wayPointsSnapshotChild.getChildren()) {
Firebase OnDataChange Methode auf null Objektverweis
Die beiden Eigenschaft stürzt alles
"timeStamp" : "2016/04/27 18:28:52",
"travelType" : "work"
JSON FROMAT
"waypoints" : {
"-KHB1VjqUdO90vxj9XCh" : {
"timeStamp" : "2016/04/27 18:28:52",
"travelType" : "work"
"-KHB1VjqUdO90vxj9XCi" : {
"latitude" : 58.337679,
"longitude" : 11.912757
},
"-KHB1ZykbwgXM9sPNie9" : {
"latitude" : 58.281384,
"longitude" : 12.294495
},
},
"-KHpPe06hLpPttuGZ0rZ" : {
"timeStamp" : "2016/04/27 18:28:52",
"travelType" : "private"
"-KHpPe07pE5ZYn4JGiZ1" : {
"latitude" : 58.281384,
"longitude" : 12.294495
},
"randomid1212" : {
"latitude" : 57.689903,
"longitude" : 11.989792
},
"randomid1213" : {
"latitude" : 57.689905,
"longitude" : 11.989795
},
}
Der aktuelle OnDataChange() Methode
mUserRef.addValueEventListener(new ValueEventListener() {
//this keeps per-user list of points
List<MyWaypoint> userWayPointsList = new ArrayList<MyWaypoint>();
@Override
public void onDataChange(DataSnapshot wayPointsDataSnapshot) {
if (wayPointsDataSnapshot.getChildrenCount() > 0) {
for (DataSnapshot wayPointsSnapshotChild : wayPointsDataSnapshot.getChildren()) {
Log.i("FireBaseTester", "For-Loop :: wayPointsSnapshotChild.getValue() : " + wayPointsSnapshotChild.getValue());
if (wayPointsSnapshotChild.getChildrenCount() > 0) {
// Temporary list
List<String> latLngListTemp = new ArrayList<>();
// THIS Gives me the error because it get used in the next for loop for some reason.
wayPointsSnapshotChild.child("timeStamp").getValue();
for (DataSnapshot wayPointsChild : wayPointsSnapshotChild.getChildren()) {
//this is where we get the Lat and Lon
double latitude = Double.parseDouble(wayPointsChild.child("latitude").getValue().toString());
double longitude = Double.parseDouble(wayPointsChild.child("longitude").getValue().toString());
Log.i("FireBaseTester", "latitude = " + latitude + " , longitude = " + longitude);
latLngListTemp.add(latitude + ", " + longitude);
}
// List containing a nested List<List<String>>
latitudeNlongitude.add(latLngListTemp);
}
}
}
//here you can assign the points to the user
Log.i("FireBaseTester", "There are " + userWayPointsList.size() + " Points for User");
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Log.e("FireBaseTester", "onCancelled - wayPointRef Error is " + firebaseError.getMessage());
}
});
} else {
Log.i("FireBaseTester", "No WayPoints Data Received");
}
Logcat
Schwerwiegende Ausnahme: main Prozess: com.example.rasmusjosefsson.rjcar, PID: 25446 java.lang.NullPointerException: Versuch, die virtuelle Methode 'java.lang.String java.lang.Object.toString()' für ein Nullobjekt Referenz aufzurufen bei com.example.rasmusjosefsson.rjcar.demo.MapListActivityRealBack2 $ 1.onDataChange (MapListActivityRealBack2.java:122) bei com.firebase.client.core.ValueEventRegistration.fireEvent (ValueEventRegistration.java:56) bei com.firebase. client.core.view.DataEvent.fire (DataEvent.java:45) unter com.firebase.client.core.view.EventRaiser $ 1.run (EventRaiser.java:38) bei android.os.Handler.handleCallback (Handler.java:739) bei android.os.Handler.dispatchMessage (Handler.java:95) bei android.os.Looper.loop (Looper.java:148) bei android.app.Activi tyThread.main (ActivityThread.java:5417) bei java.lang.reflect.Method.invoke (Mutter Methode) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:726) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:616)
Danke Kumpel! Klappt wunderbar –