Firebase LatLng缺少一个没有参数的构造函数

Jua*_*rra 6 android firebase firebase-realtime-database

我将坐标存储在实时数据库中,并在尝试检索数据时收到错误消息.错误消息是

com.google.firebase.database.DatabaseException:类com.google.android.gms.maps.model.LatLng缺少没有参数的构造函数

...

在com.google.firebase.database.DataSnapshot.getValue(未知来源)

这是代码

Main.java

protected void onStart() {
        apiClient.connect();
        super.onStart();

        DatabaseReference test = database.getReference("jsierra");

        test.addChildEventListener(new ChildEventListener() {

            @Override
            public void onChildAdded(DataSnapshot dataSnapshot, String s) {
                Toast.makeText(getBaseContext(), "Child Added", Toast.LENGTH_LONG).show();
                givenData = dataSnapshot.getValue(data.class); <-- Error
            }
}
Run Code Online (Sandbox Code Playgroud)

data.java

import com.google.android.gms.maps.model.LatLng;
public class data {
    private LatLng coordinates;

    public data() {
        coordinates = null;
    }

    public data(LatLng coordinates)
    {
        this.coordinates = coordinates;
    }

    public void setLatLng(LatLng coordinates) {
        this.coordinates = coordinates;
    }

    LatLng getLatLng () {
        return coordinates;
    }
}
Run Code Online (Sandbox Code Playgroud)

Wil*_*lik 13

创建自己的LatLng模型类,而不是使用Google Maps库中的模型类,因为它在实现中缺少公共构造函数.

public class LatLng {
    private Double latitude;
    private Double longitude;

    public LatLng() {}

    ... public getter ...
}
Run Code Online (Sandbox Code Playgroud)

编辑:如何将其转换LatLngcom.google.android.gms.maps.model.LatLng

com.google.android.gms.maps.model.LatLng mapsLatLng = 
    new com.google.android.gms.maps.model.LatLng(latLng.getLatitude(),
                                                 latLng.getLongitude());
Run Code Online (Sandbox Code Playgroud)