我已将Android应用连接到Firebase实时数据库。
我有一个简单的模型类,我用它来发送给Firebase。
构造函数代码:
public People(String name, int age, boolean single) {
this.name = name;
this.age = age;
this.single = single;
}
onCreate()
中MainActivity.java
方法的代码是:
myRef.setValue(new People("John Smith", 21, false));
myRef.setValue(new People("Sarah Smith", 30, true));
myRef.setValue(new People("Joe Bloggs", 50, false));
第一个setValue()
工作正常。使用name =“John Smith”更新Firebase,age = 21,single = false。
问题#1
但是第二个值应该完全取代约翰史密斯的进入,但年龄达到25岁(我之前设定的莎拉的年龄为25岁,但它不知何故记得而不是用30分配它)。当我进入调试模式时,Android Studio实际上传递了25作为arg。
问题#2
在
的意义上,甚至没有触发第三个setValue()
new People("Joe Bloggs", 50, false)
构造函数未被调用。在第二次setValue()
来电后,该应用停止投放。
任何人都知道我做错了什么?
答案 0 :(得分:0)
此外,您可以将自己的类的实例设置到此位置,前提是它们满足以下约束条件:
- 该类必须具有不带参数的默认构造函数
- 该类必须为属性定义公共getter 分配。没有公共getter的属性将被设置为他们的 反序列化实例时的默认值
醇>
您可以添加以下代码并重试:
public People() {
// empty
}