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

时间:2018-05-04 04:17:29

标签: java android firebase firebase-realtime-database

我正在创建一个模型类来将它用于firebaserecycleradapter但我的问题是用户数据中有一个子节点。看起来像这样 enter image description here

我需要获得以下内容:(姓名,缩略图,年份,课程)。这就是我所做的

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;
}
}

如何在学生中获得年级和课程

3 个答案:

答案 0 :(得分:2)

要获取用户数据中的子节点数据这是学生(年,课程)内的值,您需要制作如下的模型类:

 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;
        }

    }
}

你可以使用构造函数和getter / setter方法。

要将数据添加到模型,请创建对象并使用如下所示的set方法:

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

答案 1 :(得分:0)

你可以创建一个模型,但是你将拥有另一个带有user-id作为你的类名的模型,所以我建议你改变数据库的结构。你可以像

一样

user -0 -Student 然后你可以在你的usermodel

中包含List

答案 2 :(得分:0)

首先创建两个模型类"用户"和"学生"

public class users 
{
    public String name;
    public String thumbnail;
    public Student student; 
}


public class Student 
{
    public String course;
    public String year;
}

现在,您可以像这样访问Student类的年份和课程对象

users u = new users;
String studentYear =  u.student.year;
String studentCourse = u.student.course;