Firebase ClassMapper忽略提供的setter

时间:2017-05-24 22:12:49

标签: android firebase firebase-realtime-database

我正在尝试将Firebase实时数据库映射到Android上的Java类。我映射的类看起来像这样:

public class Thing {
    private String mName;
    private String mDescription;

    public void setName(String name) {
        this.mName = name;
    }

    public void setDescription(String description) {
        this.mDescription = description;
    }
}

这会传递给Firebase的.getValue()

dataSnapshot.getValue(Thing.class);

但是这会记录ClassMapper警告,但不会设置值:

  

W / ClassMapper:在com.example.android.demo.Thing类上找不到名字的setter / field   W / ClassMapper:没有在com.example.android.demo.Thing类上找到描述的setter / field

为什么忽略为这些字段提供的setter?

1 个答案:

答案 0 :(得分:1)

此处显示的问题是误导性的日志消息。除非有匹配的getter,否则ClassMapper将不会使用setter:

public class Thing {
    private String mName;
    private String mDescription;

    public void setName(String name) {
        this.mName = name;
    }

    public String getName() {
        return this.mName;
    }

    public void setDescription(String description) {
        this.mDescription = description;
    }

    public String getDescription() {
        return this.mDescription;
    }
}