Java 创建模型类并获取子节点内的数据
我正在创建一个模型类,以将其用于FireBaseCyclerAdapter,但我的问题是,用户数据中有一个子节点。看起来像这样 我需要得到以下信息:(姓名、缩略图、年份、课程)。这就是我所做的Java 创建模型类并获取子节点内的数据,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我正在创建一个模型类,以将其用于FireBaseCyclerAdapter,但我的问题是,用户数据中有一个子节点。看起来像这样 我需要得到以下信息:(姓名、缩略图、年份、课程)。这就是我所做的 public class Users { private String name; private String thumbnail; //TODO: need to get the year and course, inside the Student public String getNam
public class Users {
private String name;
private String thumbnail;
//TODO: need to get the year and course, inside the Student
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getThumbnail() {
return thumbnail;
}
public void setThumbnail(String thumbnail) {
this.thumbnail = thumbnail;
}
}
如何在学生中获取学年和课程您可以制作一个模型,但您将拥有另一个以用户id作为类名的模型,因此我建议您更改数据库的结构。你可以让它像
用户
-0
-学生
然后你可以在你的用户模型中有一个列表,首先创建两个模型类“users”和“Student” 现在,您可以像这样访问学生类的年份和课程对象
users u = new users;
String studentYear = u.student.year;
String studentCourse = u.student.course;
要获取用户数据中的子节点数据,即学生(年级、课程)中的值,您需要创建如下模型类:
public class User {
private String name;
private String thumbnail;
private Student student;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getThumbnail() {
return thumbnail;
}
public void setThumbnail(String thumbnail) {
this.thumbnail = thumbnail;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public class Student {
private String year;
private String course;
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
}
}
//Setting Data
User userObj = new User();
userObj.setName("XYZ");
userObj.setThumbnail("URL");
Student student = new User().new Student();
student.setYear("2018");
student.setCourse("MCA");
userObj.setStudent(student);
您可以使用构造函数以及getter/setter方法来实现相同的功能
要向模型中添加数据,请创建对象并使用如下设置方法:
public class User {
private String name;
private String thumbnail;
private Student student;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getThumbnail() {
return thumbnail;
}
public void setThumbnail(String thumbnail) {
this.thumbnail = thumbnail;
}
public Student getStudent() {
return student;
}
public void setStudent(Student student) {
this.student = student;
}
public class Student {
private String year;
private String course;
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
}
}
//Setting Data
User userObj = new User();
userObj.setName("XYZ");
userObj.setThumbnail("URL");
Student student = new User().new Student();
student.setYear("2018");
student.setCourse("MCA");
userObj.setStudent(student);
您只需将数据分配给模型类的对象,并使用get方法获取数据,如下所示
//Getting Data
String name=userObj.getName();
String thumbnail=userObj.getThumbnail();
String year=userObj.getStudent().getYear();
String course=userObj.getStudent().getCourse();
请参见我的示例:我是否应该为这两个类添加构造函数?