我将坐标存储在实时数据库中,但在尝试检索数据时收到错误消息。错误信息是
com.google.firebase.database.DatabaseException: Class com.google.android.gms.maps.model.LatLng is missing a constructor with no arguments
...
at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)
这是代码
主.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
}
}
数据.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;
}
}
最佳答案
创建您自己的 LatLng
模型类,而不是使用 Google Maps 库中的模型类,因为它在实现中缺少公共(public)构造函数。
public class LatLng {
private Double latitude;
private Double longitude;
public LatLng() {}
... public getter ...
}
编辑:如何将此 LatLng
转换为 com.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());
关于android - Firebase LatLng 缺少没有参数的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41192002/