Im using this function for checking a specific date is present in the database or not, but I'm getting false every time and the new date is also updated in the database
private boolean dateCheck() {
dateKey = false;
final ProgressDialog pg = new ProgressDialog(AdminMain.this);
pg.setMessage("Validating Date");
pg.setCanceledOnTouchOutside(false);
pg.setCancelable(false);
pg.show();
final DatabaseReference dbDate = FirebaseDatabase.getInstance().getReference("Dates").child(batch).child(sem);
dbDate.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if (dataSnapshot.hasChild(date)) {
pg.dismiss();
Snackbar.make(findViewById(android.R.id.content), "Attendance has been already sumbitted", Snackbar.LENGTH_LONG).show();
dateKey = false;
} else {
dateKey = true;
dbDate.child(date).setValue(true);
pg.dismiss();
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Snackbar.make(findViewById(android.R.id.content), databaseError.getMessage(), Snackbar.LENGTH_SHORT).show();
pg.dismiss();
dateKey=false;
}
});
return dateKey;
}