Firebase LatLng缺少没有参数的构造函数 [英] Firebase LatLng is missing a constructor with no arguments

查看:82
本文介绍了Firebase LatLng缺少没有参数的构造函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I am storing coordinates in a realtime database and I am getting an error message when trying to retrieve data. The error message is

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

com.google.firebase.database.DatabaseException: Class com.google.android.gms.maps.model.LatLng is missing a constructor with no arguments

...

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

at com.google.firebase.database.DataSnapshot.getValue(Unknown Source)

这是代码

Main.java

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
            }
}

data.java

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;
    }
}

推荐答案

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

Create your own LatLng model class instead of using the one from Google Maps library because it lacks a public constructor in the implementation.

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());

这篇关于Firebase LatLng缺少没有参数的构造函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆