What to build
This is the first thin slice of the move to Firebase Auth + Firestore, following the decisions in #122 (CONTEXT.md, ADR 0001). It sets up the Firebase project wiring and proves the pattern end to end.
A person signs in with Google through the Firebase SDK and opens My data. There they can add, edit and delete their custom yields, which are stored in Firestore and reached directly from the browser. Security rules let only the owner read and write their own custom yields. Firestore's persistent offline cache is on, so edits made offline survive a reload and sync when the connection returns.
That cache keeps private data in the browser after sign-out, so signing out first sends pending writes (or, if offline, asks whether to wait or discard them) and then clears the local cache. The calculator offers the person's custom yields alongside the reference yields.
This is HITL because it sets the Firestore data shape, the rules layout and the emulator setup that every later slice builds on. Review those before the rest proceed.
Acceptance criteria
Blocked by
None - can start immediately
What to build
This is the first thin slice of the move to Firebase Auth + Firestore, following the decisions in #122 (
CONTEXT.md, ADR 0001). It sets up the Firebase project wiring and proves the pattern end to end.A person signs in with Google through the Firebase SDK and opens My data. There they can add, edit and delete their custom yields, which are stored in Firestore and reached directly from the browser. Security rules let only the owner read and write their own custom yields. Firestore's persistent offline cache is on, so edits made offline survive a reload and sync when the connection returns.
That cache keeps private data in the browser after sign-out, so signing out first sends pending writes (or, if offline, asks whether to wait or discard them) and then clears the local cache. The calculator offers the person's custom yields alongside the reference yields.
This is HITL because it sets the Firestore data shape, the rules layout and the emulator setup that every later slice builds on. Review those before the rest proceed.
Acceptance criteria
Blocked by
None - can start immediately