У меня есть база данных, разные пользователи, которые были зарегистрированы в приложении, оставляют свои записи в ней!
{
"Markers" : {
"QPNTWLeoDfTwqYN9RuHnC7H0n8r2" : {
"-M5YizSvCCp_kq8sO1Cw" : {
"bus_station" : "Минск, Беларусь\n",
"comments" : "",
"date" : "23, апр., 2020",
"latitude" : "53.912536924731626",
"longitude" : "27.437333911657333",
"permission" : false,
"time" : "00:12"
}
},
"brTRf3EfqzaWuaw0q42Ay8Jnj0F3" : {
"-M5Tp8BZpUkJSbmV4Qya" : {
"bus_station" : "Минск, Беларусь\n",
"comments" : "",
"date" : "22, апр., 2020",
"latitude" : "53.9150522051367",
"longitude" : "27.440601512789726",
"permission" : false,
"time" : "01:21"
},
"-M5XhMon2UZiD6M_Zbp5" : {
"bus_station" : "Минск, Беларусь\n",
"comments" : "",
"date" : "22, апр., 2020",
"latitude" : "53.914562076017575",
"longitude" : "27.441855780780315",
"permission" : false,
"time" : "19:25"
},
"-M5XkVjlUBLwPONPVXd_" : {
"bus_station" : "Минск, Беларусь\n",
"comments" : "",
"date" : "22, апр., 2020",
"latitude" : "53.91481405286665",
"longitude" : "27.440402694046494",
"permission" : false,
"time" : "19:39"
},
"-M5XkYB8KqJ7IGa9Ft66" : {
"bus_station" : "Минск, Беларусь\n",
"comments" : "",
"date" : "22, апр., 2020",
"latitude" : "53.91437585704003",
"longitude" : "27.44145680218935",
"permission" : false,
"time" : "19:39"
},
"-M5XuRYuQfYdDJjw9fNq" : {
"bus_station" : "Минск, Беларусь\n",
"comments" : "",
"date" : "22, апр., 2020",
"latitude" : "53.914825308850304",
"longitude" : "27.439645305275917",
"permission" : false,
"time" : "20:22"
}
},
"dn4OFc5HfTbxwaTBItwHYPqcmgG2" : {
"-M5XupI0aE8WyyjV32kP" : {
"bus_station" : "Минск, Беларусь\n",
"comments" : "",
"date" : "22, апр., 2020",
"latitude" : "53.912928534048646",
"longitude" : "27.43777111172676",
"permission" : false,
"time" : "20:24"
},
"-M5XurgViEMrVS_2o6pC" : {
"bus_station" : "Минск, Беларусь\n",
"comments" : "",
"date" : "22, апр., 2020",
"latitude" : "53.912716239993195",
"longitude" : "27.4398085847497",
"permission" : false,
"time" : "20:24"
}
}
}
}
и каждая запись имеет координаты! Как мне отобразить их на карте?
при этом:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference markersRef = rootRef.child("Markers");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String latitude = ds.child("latitude").getValue(String.class);
String longitude = ds.child("longitude").getValue(String.class);
Log.d("TAG", latitude + ", " + longitude);
LatLng location = new LatLng(Double.parseDouble(latitude), Double.parseDouble(longitude));
//Add the location to a list of locations
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Log.d("TAG", databaseError.getMessage()); //Don't ignore errors!
}
};
markersRef.addListenerForSingleValueEvent(valueEventListener);
но мне ничего не отображается! logcat выбрасывает ноль, ноль и пишет ошибку:
2020-04-22 23:10:12.031 18972-18972/by.sviter.stop E/AndroidRuntime: FATAL EXCEPTION: main
Process: by.sviter.stop, PID: 18972
java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.trim()' on a null object reference
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1838)
at sun.misc.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
at java.lang.Double.parseDouble(Double.java:538)
at by.sviter.stoprevizor.tabs.maps.MapsFragment$3$1.onDataChange(MapsFragment.java:337)
at com.google.firebase.database.Query$1.onDataChange(com.google.firebase:firebase-database@@19.2.1:179)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(com.google.firebase:firebase-database@@19.2.1:75)
at com.google.firebase.database.core.view.DataEvent.fire(com.google.firebase:firebase-database@@19.2.1:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(com.google.firebase:firebase-database@@19.2.1:55)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6718)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:495)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Попытка вызвать виртуальный метод 'java .lang.String java .lang.String.trim ()' для нуля ссылка на объект для местоположения: LatLng location = new LatLng (Double.parseDouble (широта), Double.parseDouble (долгота));