I want to be store the number of children in a Firebase Database to a variable in Android Studio. I am trying to get the total all the nodes under 2 different children in Firebase but it returns java.lang.ArithmeticException: divide by zero. Any help will be greatly appreciated.
private long absent, present, total, attendanceRecord;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_student_stats);
statsResult = (TextView) findViewById(R.id.statsResult);
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot ds : dataSnapshot.getChildren()) {
String name = ds.getKey();
String selectedClass;
Bundle extras = getIntent().getExtras();
if (extras == null) {
selectedClass = null;
} else {
selectedClass = extras.getString("classSelected");
}
absentNumber = FirebaseDatabase.getInstance().getReference().child("Users").child(user.getUid()).child("Classes").child(selectedClass).child("AbsentStudents").child(name);
presentNumber = FirebaseDatabase.getInstance().getReference().child("Users").child(user.getUid()).child("Classes").child(selectedClass).child("PresentStudents").child(name);
presentNumber.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snap: dataSnapshot.getChildren()) {
present = snap.getChildrenCount() ;
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
absentNumber.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snap: dataSnapshot.getChildren()) {
absent = snap.getChildrenCount() ;
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
total = present + absent;
attendanceRecord = present / total;
allStudentsList.add(name + "\t" + attendanceRecord + "%");
}