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.uid
FBRef.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*Year
reference. - The overload
getUser(fbuser, activeYear)
is a convenience that does both initialization steps. - If you change
activeYear
at runtime, remember to re‑invokesetActiveYear
to update the year‑scoped refs.
Last updated: July 17, 2025