屏幕模型.java
public class ScreenModel {
@PropertyName("TEST_FIELD")
private HashMap<String, Object> testFieldHashMap;
public HashMap<String, Object> getTestFieldHashMap() {
return testFieldHashMap;
}
}
添加快照侦听器
FirebaseFirestore.getInstance().collection("SCREENS").document(sharedPreferences.getString("documentId", null)).addSnapshotListener((value, error) - > {
if (error != null) return;
if (value != null && value.exists()) {
ScreenModel screenModel = value.toObject(ScreenModel.class);
if (screenModel.getTestFieldHashMap() == null)
Log.w("ABC", "111"); // It always print this, why always null?
}});
为什么@PropertyName
无法自动序列化Map,而成功地序列化了其他类型?
1条答案
按热度按时间cu6pst1q1#
不是字段类型的问题,而是访问修饰符的问题,你把字段设置为私有,要解决这个问题,需要设置字段
public
:现在,在序列化时,注解将同时考虑字段名和getter。