[英]getting value in documentSnapShot but when converting it toobject the object return null,why?
我在我的应用中使用 Firestore。 当我从该数据库中获取数据时,我将数据放入documentSnapShot
对象中,但是当我将documentSnapShot
转换为自定义对象时,它会被初始化,但其中不包含任何数据。
我的 Firebase Firestore 数据库:
我的 POJO 类:类 FirebaseData
public class FirebaseData {
private List<Group> group = null;
/**
* No args constructor for use in serialization
*
*/
public FirebaseData() {
}
/**
*
* @param group
*/
public FirebaseData(List<Group> group) {
super();
this.group = group;
}
public List<Group> getGroup() {
return group;
}
public void setGroup(List<Group> group) {
this.group = group;
}
}
班组
public class Group {
private String name;
private List<Sticker> stickers = null;
private Integer id;
/**
* No args constructor for use in serialization
*
*/
public Group() {
}
/**
*
* @param name
* @param stickers
* @param id
*/
public Group(String name, List<Sticker> stickers, Integer id) {
super();
this.name = name;
this.stickers = stickers;
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Sticker> getStickers() {
return stickers;
}
public void setStickers(List<Sticker> stickers) {
this.stickers = stickers;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}
班级贴纸
public class Sticker {
private String name;
private String id;
/**
* No args constructor for use in serialization
*
*/
public Sticker() {
}
/**
*
* @param name
* @param id
*/
public Sticker(String name, String id) {
super();
this.name = name;
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
主活动类:
db.collection("PackGroups").document("1").get()
.addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
Log.d("TAG : firebase" ,"onSuccess: "+documentSnapshot.getData());
FirebaseData firebaseData = documentSnapshot.toObject(FirebaseData.class );
recyclerView.setAdapter(new AdapterGroupPack(MainActivity.this, firebaseData.getGroup()));
recyclerView.getAdapter().notifyDataSetChanged();
}
});
您的代码中的问题是List<Group> group
在您的FirebaseData
类中以小写开头,而在您的数据库中以大写(组)开头。 为了使其工作,两个名称必须匹配。 要解决此问题,您可以将数据库中该数组的名称更改为以小写开头,或者在 getter 之前添加以下注释:
@PropertyName("Group")
public List<Group> getGroup() {
return group;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.