Firebase DataSnapshot不填充对象

时间:2017-07-08 16:36:42

标签: 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() {
        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的重点是什么?

1 个答案:

答案 0 :(得分:1)

像这样制作你的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;
   }

}