2017-05-24 54 views
0

我試圖將Firebase實時數據庫映射到Android上的Java類。我映射到看起來像這樣的類:Firebase ClassMapper忽略提供的設置器

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; 
    } 
} 

它傳遞給火力地堡的.getValue()

dataSnapshot.getValue(Thing.class); 

但是這會將一個ClassMapper警告,不設置值:

W/ClassMapper:在類com.example.android.demo.Thing上找到的名稱沒有設置者/字段 W/ClassMapper:沒有在類com.example.android.demo.Thing上找到的描述的設置者/字段

爲什麼忽略爲這些字段提供的setter?

+0

謝謝,弗蘭克,修復我的icky標籤! – RedBassett

回答

1

這裏顯示的問題是一個令人誤解的日誌消息。 ClassMapper將不會使用setter,除非有一個匹配的getter:

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; 
    } 
}