Java Firebase DataSnapshot未填充对象
我试图从快照中提取firebase数据库中的一个对象 firebase中的JSON对象是:Java Firebase DataSnapshot未填充对象,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,我试图从快照中提取firebase数据库中的一个对象 firebase中的JSON对象是: "-KoVHZ8YVll0RiI2GwKb" : { "name" : "Name 1", "phone_number" : "4443335555" } 我想把它放在一个像这样的物体里 public class Contact { private String mName; private String mPhoneNumber; public Contact
"-KoVHZ8YVll0RiI2GwKb" : {
"name" : "Name 1",
"phone_number" : "4443335555"
}
我想把它放在一个像这样的物体里
public class Contact {
private String mName;
private String mPhoneNumber;
public Contact() {
mName = "";
mPhoneNumber = "";
}
public String getName() { return mName; }
public String getPhoneNumber() { return mPhoneNumber; }
public void setName(final String name) { mName = name; }
public void setPhoneNumber(final String phoneNumber) { mPhoneNumber = phoneNumber; }
}
我打电话来
Contact contact = snapshot.getValue(Contact.class);
联系人对象只填充名称,而不填充电话号码。文档只是声明必须有公共getter和空构造函数才能工作。我猜我的命名规则有问题有人有什么想法吗
编辑
我知道我可以通过以下方式提取数据:
mName = (String) snapshot.child("nane").getValue();
mPhoneNumber = (String) snapshot.child("phone_number").getValue();
但是,创建p.O.J.O.有什么意义呢?让您的Contact.java如下:
@IgnoreExtraProperties
public class Contact {
private String name;
private String phone_number;
public Contact() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPhone_number() {
return phone_number;
}
public void setPhone_number(String phone_number) {
this.phone_number = phone_number;
}
}那没用。我已尝试将所有PhoneNumber设置为phone_number,但无法使其正常工作。请发布数据库快照。它已发布,首先请显示实际的JSON,而不是logcat输出。你可以通过点击你的页面中的“导出JSON”链接来实现。我已经添加了实际的对象。这样做很有效,但是创建了一个非常荒谬的命名方案。为什么它得到的是
mName
而不是mPhoneNumber