在我的MapsActivity
中,我试图为我的Cloud Firestore
集合“ 商店”中的每条记录添加一个标记。
运行代码时,我得到以下FATAL EXCEPTION
:
试图调用虚拟方法'double com.google.firebase.firestore.GeoPoint.getLatitude()'放在一个空对象上 参考
我不知道为什么得到null object reference
。路径正确(使用相同的路径,我正在提取其他数据)。该字段的名称是正确的(我尝试使用许多名称:“ 位置”,“ prova ”,“ aaaaa ”等) 。该字段设置正确。
我也尝试过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