The summary.
OLD APPLICATION VERSIONS PERSIST FOR MONTHS
So the backend must stay backward compatible, and must be able to tell clients the minimum supported version so an obsolete application prompts rather than fails confusingly.
DESIGN ENDPOINTS AROUND WHAT A SCREEN NEEDS
Each request has latency cost, which dominates on mobile networks. Paginate every collection.
ALWAYS SET A TIMEOUT AND CANCEL ON DISMISSAL
Otherwise responses arrive for screens that no longer exist, and hanging requests leave the interface waiting.
Make every request safe to repeat — retries are inevitable.
READ FROM LOCAL STORAGE AND LET THE NETWORK UPDATE IT
The interface then never waits on the network and works offline by construction.
THE MOST COMMON SERIOUS FIREBASE MISTAKE IS OPEN SECURITY RULES
Development mode permits everything and the change is never made. Deny by default, enforce ownership, and never let a client set its own role or balance.
The client configuration is public by design — the rules are what protect you.
ASK FOR NOTIFICATION PERMISSION AFTER DEMONSTRATING VALUE
Refused permission is difficult to recover, and unwanted notifications get everything disabled or the application uninstalled.