Java Firebase DataSnapshot未填充对象

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

我试图从快照中提取firebase数据库中的一个对象

firebase中的JSON对象是:

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