עבודה על FBref משופר


הפניות לדאטאבייס

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.refTasksTasks/{uid}
  • FBRef.refDoneTasksDone_Tasks/{uid}
  • FBRef.refYearsYears/{uid}
  • FBRef.refStudentsStudents/{uid}
  • FBRef.refPresencePresence/{uid}
  • FBRef.refMaakavMaakav/{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.refStudentsYearStudents/{uid}/{activeYear}
  • FBRef.refPresenceYearPresence/{uid}/{activeYear}
  • FBRef.refMaakavYearMaakav/{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‑invoke setActiveYear to update the year‑scoped refs.

Last updated: July 17, 2025