Neon, if the reason you're leaving is that you want SQL. Firestore is a NoSQL document database (Firestore); teams usually move when joins, aggregations, and transactions across collections get awkward, or when per-document read pricing gets hard to predict. Neon gives you a Postgres database plus the surrounding pieces Firebase provided: Auth, file storage, and functions, each of which branches with your data.
What maps to what
| Firebase piece | On Neon |
|---|---|
| Firestore | Postgres, with the Firebase migration guide for moving collections into tables |
| Firebase Auth | Managed Better Auth, or keep Firebase Auth and let the Data API validate its JWTs |
| Cloud Storage | Object Storage, S3-compatible, beta |
| Cloud Functions | Neon Functions, Node.js 24, beta |
| Client SDK | @neondatabase/neon-js for Auth and Data API, or any Postgres driver server-side |
Move the data in stages
Firestore documents are nested and schemaless; Postgres tables aren't. The migration guide walks through exporting collections, flattening them into tables, and loading them with standard tools (migrate from Firebase). JSONB columns are a useful halfway point: land a document as JSONB first, then promote the fields you query into real columns and indexes as the schema settles.
Test the cutover on a branch. A Neon branch is a copy-on-write clone, so you can load a Firestore export, run the app against it, fix the mapping, and reset the branch to try again without touching the parent (branching).
Keep Firebase Auth if you want
You don't have to migrate identity on day one. The Data API validates JWTs from any provider and enforces Row-Level Security with the token's sub claim (access control). Point it at Firebase Auth's JWKS, keep your users signed in, and move to Managed Better Auth later or never.
Predictable pricing
Neon bills compute in CU-hours and storage in GB-months, not per read or write (plans). A 0.25 CU compute (≈1 GB RAM) active 200 hours a month is 50 CU-hours × $0.106 = $5.30 on Launch plus $0.35/GB-month of storage. Compute drops to $0 while suspended; storage continues to bill.
How other options compare
- Firebase Data Connect: Firebase's own relational option, backed by Cloud SQL for PostgreSQL with type-safe SDKs (Data Connect). It keeps you in the Firebase ecosystem, and Cloud SQL is instance-based rather than scale-to-zero.
- Supabase: the other common Firebase exit, with Postgres, Auth, Storage, Realtime, and Flutter and Swift SDKs that are GA (features). Its shape is the closest to Firebase, the client SDK talking straight to the database, and it carries the same failure mode: every table needs a correct RLS policy or any client can read and modify it (going into prod). Firebase-sized user bases also meet Pro's auth quota fast: 100,000 MAU included, then $0.00325 per MAU (pricing), against 1M included on Neon's paid plans. The database is a fixed instance you size and resize by hand, like Cloud SQL, with usually under two minutes of downtime per change and hourly billing around the clock (compute and disk, compute usage). Point-in-time recovery is a $100 per month per 7 days add-on (backups); Neon's Launch plan includes instant restore up to 7 days (Neon vs Supabase).
Vendor details verified on 2026-09-02 against the linked pages.

Follow the Firebase to Neon guide and test the cutover on a branch first.








