Part of the FCM push epic #24. The device smoke test — FCM registration + delivery + deep-link routing can only be proven on a real device (an emulator can register FCM, but a physical device is the real test). Depends on P1 + P2b + P3.
Matrix (dev flavor first, then prod)
- Install a signed build → sign in → a
device_tokens row with an fcm_token appears for the user.
- message: from another account, send a chat message → the recipient device shows a notification with the redacted preview → tap → lands on Messages tab + the correct thread. Foreground: no duplicate notification for the thread already on screen.
- gig_request (artist): → notification → tap → Artist Home + request detail.
- booking_confirmed_client / _artist: → tap → Bookings (client) / Gigs (artist).
- booking_reminder_24h: fan-out to both roles → each lands on its role tab.
- booking_review_request (client): → Bookings + review prompt.
- Token rotation: reinstall / clear data → a new token registers; the old one 404s server-side (logged).
- Sign-out: the device's
fcm_token row is removed; a second account on the device gets no cross-pushes.
- Doze / high-priority: a backgrounded device still receives a
message push promptly.
- Promote dev → prod (repeat 1–2 on a prod build) before closing.
Acceptance
Part of the FCM push epic #24. The device smoke test — FCM registration + delivery + deep-link routing can only be proven on a real device (an emulator can register FCM, but a physical device is the real test). Depends on P1 + P2b + P3.
Matrix (dev flavor first, then prod)
device_tokensrow with anfcm_tokenappears for the user.fcm_tokenrow is removed; a second account on the device gets no cross-pushes.messagepush promptly.Acceptance
docs/PUSH_SETUP.md§D with the observed results, then close [push][EPIC] FCM push activation #24.