Java 创建模型类并获取子节点内的数据

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

我正在创建一个模型类,以将其用于FireBaseCyclerAdapter,但我的问题是,用户数据中有一个子节点。看起来像这样

我需要得到以下信息:(姓名、缩略图、年份、课程)。这就是我所做的

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();

请参见我的示例:我是否应该为这两个类添加构造函数?