当前位置: 首页 > 面试题库 >

如何为Firebase数据库异常添加内置类的无参数构造函数?

南门志
2023-03-14
问题内容

我正在尝试从Android中的Firebase实时数据库中获取FirebaseLocationData对象。

根据Docs,该类不应具有我已经做过的参数构造函数public FirebaseLocationData() {}但仍显示错误

com.google.firebase.database.DatabaseException: Class android.location.Location does not define a no-argument constructor. If you are using ProGuard, make sure these constructors are not stripped.

我怎么做一个 无参数的构造函数android.location.Location 类?

该行产生错误 FirebaseLocationData fld = dataSnapshot.getValue(FirebaseLocationData.class);

码:

 public void onChildAdded(DataSnapshot dataSnapshot, String previousChildName) {
            Log.d(TAG, "onChildAdded:" + dataSnapshot.getKey());

            FirebaseLocationData fld = dataSnapshot.getValue(FirebaseLocationData.class);
            Toast.makeText(MainActivity.this, fld.getEmail()+" added", Toast.LENGTH_SHORT).show();

        }

FirebaseLocationData类:

public class FirebaseLocationData {
String email;
Location location;
String time;

public FirebaseLocationData() {
}

public FirebaseLocationData(Location location, String email, String time) {
    this.location = location;
    this.email = email;
    this.time = time;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getTime() {
    return time;
}

public void setTime(String time) {
    this.time = time;
}

public Location getLocation() {
    return location;
}

public void setLocation(Location location) {
    this.location = location;
}

}


问题答案:

您正在尝试编写一个android.location.Location对象, 并且
该类没有公共的,无参数的构造函数。许多Android库类无法满足Firebase的要求,因此您必须编写自己的序列化/反序列化才能与数据库交换必要的信息。



 类似资料:
  • 我无法在Firebase实时数据库中添加任何数据。数据库连接正常,但我无法添加任何数据。当我单击“到”按钮时,添加到数据库中的数据。 主要活动。java-代码 事件。java-代码

  • 为什么这段代码不在类析构函数中调用CloseHandles 在我的代码测试中,我调用“((MyClass*)pThis)-

  • 问题内容: 在C ++中,对象的生命周期从构造函数成功完成时开始。在构造函数内部,该对象尚不存在。 问:从构造函数发出异常是什么意思? 答:这意味着构造已失败,该物体从未存在,其寿命从未开始。[ 来源 ] 我的问题是:Java是否同样适用?例如,如果我移交给另一个对象,然后构造函数失败,会发生什么情况? 这个定义明确吗?现在是否有对非对象的引用? 问题答案: 该对象存在,但未正确初始化。 每当构造

  • 假设我想为整数列表声明一个简单的代数数据类型: 但是,最后一个声明导致一个错误 数据类必须至少有一个主构造函数参数 > 为什么存在这种限制?查看文档,似乎没有很好的技术理由要求数据类构造函数为非空 不需要编写大量样板代码就可以表达空构造函数吗?如果我把最后的声明改成 然后我就失去了和的免费实现,它们是通过声明免费提供的。 编辑 亚历克斯·费拉托夫在下面给出了一个简短的解决方案。显然,您永远不需要超

  • 我正在浏览hibernate留档,文档说hibernate需要为我们所有的持久类提供一个no-arg构造函数: 无参数构造函数是所有持久类的要求;Hibernate必须使用Java反射为您创建对象。构造器可以是私有的,但是在没有字节码插装的情况下,运行时代理生成和有效的数据检索需要包或公共可见性。 但是当我通过创建一个没有任何无参数构造函数的POJO类并放置一个接受参数的构造函数来创建一个示例程序

  • 我刚开始学习抽象类。 我在一些代码测试中遇到了这个抽象的类问题。我已经被对象是如何启动的难倒了。 在抽象类中可以看到,它的构造函数只持有两个参数--和 其中一个要求是创建类。然而,正如在main(由问题提供)中所看到的,对象由启动,其中缺少和seats值。 我试图编写我的货车类,但是,我无法绕过和的参数,而不改变主类中给定的上下文。我试图在谷歌上搜索更多信息,但找不到任何答案。 有人能好心开导我一