Согласно вашему комментарию, возможная структура базы данных может быть такой:
Firebase-root
|
--- teachers
| |
| --- teacherIdOne
| | |
| | --- "teacherName" : "Teacher Name One"
| | |
| | --- students:
| | |
| | --- studentIdOne: "Student Name One"
| | |
| | --- studentIdTwo: "Student Name Two"
| |
| --- teacherIdTwo
| |
| --- "teacherName" : "Teacher Name Two"
| |
| --- students:
| |
| --- studentIdThree: "Student Name Three"
| |
| --- studentIdFour: "Student Name Four"
|
--- students
|
--- studentIdOne
| |
| --- "studentName" : "Student Name One"
|
--- studentIdTwo
| |
| --- "studentName" : "Student Name Two"
|
--- studentIdThree
| |
| --- "studentName" : "Student Name Three"
|
--- studentIdFour
| |
| --- "studentName" : "Student Name Four"
|
--- studentIdFive
|
--- "studentName" : "Student Name Five"
И для отображения всех 5 имен учеников, пожалуйста, используйте следующий код:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference studentsRef = rootRef.child("students");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String studentName = ds.child("studentName").getValue(String.class);
Log.d("TAG", studentName);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
studentsRef.addListenerForSingleValueEvent(valueEventListener);
Те будет выход:
Student Name One
Student Name Two
Student Name Three
Student Name Four
Student Name Five
Если вы заинтересованы в отображении этих имен в RecyclerView
, , то - это то, как вы можете извлекать данные из базы данных Firebase Realtime и отображать их в RecyclerView
, используя FirebaseRecyclerAdapter
.
Если вы хотите отобразить ученика конкретного учителя, используйте следующий код:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference studentsRef = rootRef.child(teachers).child(teacherId).child("students");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String studentName = ds.getValue();
Log.d("TAG", studentName);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
studentsRef.addListenerForSingleValueEvent(valueEventListener);
, в котором teacherId
- это идентификатор учителя, которого вы хотите показать своим ученикам. Если идентификатор учителя, например, teacherIdOne
, вывод будет:
Student Name One
Student Name Two