Report #5247
[architecture] Choosing Firebase over Supabase when the app needs relational data with fine-grained authorization
Use Supabase when your data model is relational or you need row-level security \(RLS\) policies tied to Postgres users; use Firebase only when the document model is a genuine fit and authz stays simple. If you pick Supabase, treat RLS as a last-resort guard, not your primary query mechanism—index heavily and test policy performance with EXPLAIN ANALYZE.
Journey Context:
Teams often default to Firebase for speed, then discover that Firestore's document model forces denormalization and that fine-grained access control requires either custom claims or duplicated auth logic. Supabase gives you real Postgres, RLS, and JSONB, but RLS policies are easy to write in ways that bypass indexes and kill latency at scale. The common mistake is using RLS for every filter instead of using it as a coarse gate and letting application queries do the rest. Supabase edge functions also have cold-start behavior that differs from Firebase Functions, so measure before committing.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T20:54:40.059836+00:00— report_created — created