The FBRef utility class centralizes all your Firebase Realtime Database references for the current user, including per-year branches for Tasks, Done_Tasks, Years, Students, Presence, and Maakav.
FBRef Usage Guidelines
1. Initialize without year
In activities where you do not yet know activeYear (e.g. LoginActivity), call:
FBRef.getUser(refAuth.getCurrentUser());
This sets:
FBRef.uidFBRef.refTasks→Tasks/{uid}FBRef.refDoneTasks→Done_Tasks/{uid}FBRef.refYears→Years/{uid}FBRef.refStudents→Students/{uid}FBRef.refPresence→Presence/{uid}FBRef.refMaakav→Maakav/{uid}
2. Initialize with year {: .box-note}
Once you have loaded activeYear (e.g. from SharedPreferences), call:
FBRef.getUser(refAuth.getCurrentUser(), activeYear);
This will also invoke internally:
FBRef.setActiveYear(activeYear);
which sets:
- (Your existing pattern remains)
FBRef.refTasks.child(String.valueOf(activeYear))→Tasks/{uid}/{activeYear} FBRef.refStudentsYear→Students/{uid}/{activeYear}FBRef.refPresenceYear→Presence/{uid}/{activeYear}FBRef.refMaakavYear→Maakav/{uid}/{activeYear}
3. Using the references
Tasks
FBRef.refTasks
.child(String.valueOf(activeYear))
.addValueEventListener(...);
Students
FBRef.refStudentsYear
.get()
.addOnCompleteListener(...);
Presence
FBRef.refPresenceYear
.addListenerForSingleValueEvent(...);
Maakav
FBRef.refMaakavYear
.addValueEventListener(...);
4. Important notes {: .box-warning}
- Always call
setActiveYear(...)before using any*Yearreference. - The overload
getUser(fbuser, activeYear)is a convenience that does both initialization steps. - If you change
activeYearat runtime, remember to re‑invokesetActiveYearto update the year‑scoped refs.
Last updated: July 17, 2025