我正在尝试创建一个出勤应用程序,因此我想获得注册学生的课程。学生的班级看起来像这样:
class Student {
final String name;
final String email;
final String number;
final String regNo;
List<CourseIDAndInstructorID> courses;
Student({this.name, this.email, this.number, this.regNo});
}
名为List
的课程包含其所在课程的讲师的文档ID和课程文档的文档ID。(因为一个学生显然要从其他讲师那里上课)
现在使用这两个字段,我想获取课程的文档,创建自定义类Course
的对象,然后将此对象添加到List
,将其返回以便它可以显示在GUI上。
但是我得到了这个异常,而我显然在对象中有数据。
The image of the Exception Message can be seen here
final CollectionReference _instructorCollection =
Firestore.instance.collection('instructors');
final CollectionReference _studentCollection =
Firestore.instance.collection('students');
Stream<List<Course>> _getStudentCourses() async* {
List<Course> courseList;
DocumentSnapshot stdDoc = await _studentCollection.document(uid).get();
Student _student = new Student.fromSnapshot(stdDoc);
if (_student.courses.length == 0) {
return; //TODO add appropriate return type
} else {
int len = _student.courses.length;
while (len != 0) {
len--;
DocumentSnapshot snapshot = await _instructorCollection
.document(_student.courses[len].instructorUID)
.collection('courses')
.document(_student.courses[len].courseID)
.get();
print(snapshot.data);
Course course = new Course.fromSnapshot(snapshot);
courseList.add(course);
yield courseList;
}
}
}
有人可以告诉我,我做错了什么或者我怎么做? 如果问题中缺少某些内容,请告诉我,以便我可以补充。