I want to display only Books from Books location in Firebase Realtime database filtering by child "discipline" obtained from Lecturers location.
Code to display the books in Recycler Adapter
public class LecturerBooks extends AppCompatActivity {
RecyclerView recyclerView;
LecturerBookAdapter lecturerBookAdapter;
FirebaseAuth mAuth;
FirebaseAuth.AuthStateListener authListener;
DatabaseReference dbRef;
DatabaseReference userRef;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lecturer_books);
recyclerView=findViewById(R.id.recyclerView);
mAuth=FirebaseAuth.getInstance();
authListener = mAuth -> {
FirebaseUser user = mAuth.getCurrentUser();
if (user == null) {
startActivity(new Intent(LecturerBooks.this, LecturerLogin.class));
finish();
}
else {
String mail=user.getEmail();
userRef=FirebaseDatabase.getInstance().getReference("Lecturers");
userRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot ds : snapshot.getChildren()) {
if (Objects.equals(ds.child("email").getValue(), mail)) {
String program = ds.child("discipline").getValue(String.class);
dbRef = (DatabaseReference) FirebaseDatabase.getInstance().getReference("Books");
dbRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if(Objects.equals(snapshot.child("discipline").getValue(), program))
{
recyclerView.setLayoutManager(new LinearLayoutManager(LecturerBooks.this));
FirebaseRecyclerOptions<BookModel> options = new FirebaseRecyclerOptions.Builder<BookModel>()
.setQuery(dbRef, BookModel.class)
.build();
lecturerBookAdapter = new LecturerBookAdapter(options);
recyclerView.setAdapter(lecturerBookAdapter);
lecturerBookAdapter.startListening();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
};
}
@Override
protected void onStart() {
super.onStart();
mAuth.addAuthStateListener(authListener);
//lecturerBookAdapter.startListening();
}
@Override
protected void onStop() {
super.onStop();
if (authListener != null) {
mAuth.removeAuthStateListener(authListener);
}
//lecturerBookAdapter.stopListening();
}
public void onBackPressed() {
startActivity(new Intent(LecturerBooks.this,LecturerMain.class));
finish();
}
}
Firebase Recycler view is not displaying filtered data.
Books location

Lecturer location in firebase
