В моем MapsActivity
я пытаюсь добавить один маркер для каждой записи в моей коллекции Cloud Firestore
" Stores ".
Когда я запускаю код, я получаю этоFATAL EXCEPTION
:
Попытка вызвать виртуальный метод 'double com.google.firebase.firestore.GeoPoint.getLatitude ()' для ссылки на пустой объект
Я не знаюНе знаю, почему я получаю null object reference
.Путь правильный (с тем же путем я извлекаю другие данные).Название поля правильное (я пробовал со многими именами: " position ", " prova ", " aaaaa ", ecc).Поле установлено правильно.
Я также попробовал getLatitude
Вот подробности моего кода.
MapsActivity.java
FirebaseFirestore.getInstance().collection("Stores")
.get()
.addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
if (task.isSuccessful()) {
for (QueryDocumentSnapshot document : task.getResult()) {
Store store = document.toObject(Store.class);
GeoPoint gp = store.getPosition();
LatLng location = new LatLng(gp.getLatitude(), gp.getLongitude());
MarkerOptions options = new MarkerOptions()
.position(location)
.title(store.getName());
mMap.addMarker(options);
}
}
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.d("Error Listener",e.toString());
}
});
Store.java
public class Store extends SugarRecord
{
@Unique
private String storeId;
private GeoPoint position;
public Store()
{
super();
}
public GeoPoint getPosition()
{
return position;
}
@Override
public String toString()
{
return "Stores{" +
"storeId='" + storeId + '\'' +
", position='" + position + '\'' +
'}';
}
}
Cloud Firestore
![enter image description here](https://i.stack.imgur.com/aLMoP.png)