在Java中不使用模式类的情况下,从实时firebase创建列表
我坚持了一点,请帮我解决这个问题,我需要将cateModelList以所需格式发送到适配器,格式包括参数1)字符串类型链接2)字符串类型类别名称 我从firebase获得了数据,我不知道如何将这些数据格式化到for循环中所需的列表中。请帮助我在Java中不使用模式类的情况下,从实时firebase创建列表,java,android,firebase-realtime-database,Java,Android,Firebase Realtime Database,我坚持了一点,请帮我解决这个问题,我需要将cateModelList以所需格式发送到适配器,格式包括参数1)字符串类型链接2)字符串类型类别名称 我从firebase获得了数据,我不知道如何将这些数据格式化到for循环中所需的列表中。请帮助我 List<CategoryModel> categoryModelList = new ArrayList<CategoryModel>(); FirebaseDatabase database = FirebaseDatabas
List<CategoryModel> categoryModelList = new ArrayList<CategoryModel>();
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference databaseReference = database.getReference("categories");
// Read from the database
databaseReference.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot data:dataSnapshot.getChildren()){
categoryModelList.add(new CategoryModel(data.child().getValue("img"), data.child().getValue("name")))
}
}
@Override
public void onCancelled(DatabaseError error) {}
});
firebase数据库结构
需要的产出
List<CategoryModel> categoryModelList = new ArrayList<CategoryModel>();
categoryModelList.add(new CategoryModel("link","Home"));
categoryModelList.add(new CategoryModel("link","Electronics"));
categoryModelList.add(new CategoryModel("link","Essentials"));
categoryModelList.add(new CategoryModel("link","Grocery"));
categoryModelList.add(new CategoryModel("link","Mobile"));
categoryModelList.add(new CategoryModel("link","Fashion"));
categoryModelList.add(new CategoryModel("link","Beauty"));
categoryModelList.add(new CategoryModel("link","Appliances"));
categoryModelList.add(new CategoryModel("link","Toys & Baby"));
categoryModelList.add(new CategoryModel("link","Flight"));
categoryModelList.add(new CategoryModel("link","Sports"));
List categoryModelList=new ArrayList();
添加(新的CategoryModel(“链接”、“主页”);
添加(新的CategoryModel(“链接”、“电子”));
添加(新的CategoryModel(“链接”、“要素”);
添加(新的CategoryModel(“链接”、“杂货店”);
添加(新的CategoryModel(“链接”、“移动”);
添加(新的CategoryModel(“链接”、“时尚”);
添加(新的CategoryModel(“链接”、“美丽”);
添加(新的CategoryModel(“链接”、“设备”);
添加(新的CategoryModel(“链接”、“玩具和婴儿”);
添加(新的CategoryModel(“链接”、“航班”);
添加(新的CategoryModel(“链接”、“运动”);
伙计们,请帮助我,我不明白如何从这些数据中获取此类列表Java类中的属性(字段和getter/setter)名称与数据库中的名称不匹配。可以使用Java注释将类显式映射到数据库:
public class CategoryModel {
private String categoryIconLink;
private String categoryName;
public CategoryModel() { }
public CategoryModel(String categoryIconLink, String categoryName) {
this.categoryIconLink = categoryIconLink;
this.categoryName = categoryName;
}
@PropertyName("img")
public String getCategoryIconLink() {
return categoryIconLink;
}
@PropertyName("name")
public String getCategoryName() {
return categoryName;
}
@PropertyName("img")
public void setCategoryIconLink(String categoryIconLink) {
this.categoryIconLink = categoryIconLink;
}
@PropertyName("name")
public void setCategoryName(String categoryName) {
this.categoryName = categoryName;
}
}
您还需要一个无参数构造函数,否则Firebase不知道如何实例化您的类。这就是我添加的公共CategoryModel(){}
public class CategoryModel {
private String categoryIconLink;
private String categoryName;
public CategoryModel() { }
public CategoryModel(String categoryIconLink, String categoryName) {
this.categoryIconLink = categoryIconLink;
this.categoryName = categoryName;
}
@PropertyName("img")
public String getCategoryIconLink() {
return categoryIconLink;
}
@PropertyName("name")
public String getCategoryName() {
return categoryName;
}
@PropertyName("img")
public void setCategoryIconLink(String categoryIconLink) {
this.categoryIconLink = categoryIconLink;
}
@PropertyName("name")
public void setCategoryName(String categoryName) {
this.categoryName = categoryName;
}
}