从Cloud Firestore获取GeoPoint时空对象引用

时间:2018-11-26 17:46:31

标签: android google-cloud-firestore geopoints

在我的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

enter image description here

0 个答案:

没有答案