Source integration

Firestore

Connect a Firestore project as a migration source. NoSQLSync samples documents across a collection to infer a schema and listens for real-time changes.

Start free →

Connection requirements

  • A GCP service account JSON key with at least the Cloud Datastore Viewer role on the project
  • The target Firestore database in Native mode (Datastore mode is not supported)
  • The collection path(s) to migrate — sub-collections are detected separately from their parent

Firestore real-time listeners

CDC attaches a Firestore snapshot listener to the collection. Firestore pushes every subsequent create, update, and delete to the listener; there is no replay of history before the listener attaches, which is why a bulk load must run first.

Setup

1
Create a service account
In GCP IAM, create a service account with the Cloud Datastore Viewer role and download its JSON key.
2
Add the connection
Paste the service account JSON and project ID under Connections → Add.
3
Introspect and map
NoSQLSync samples documents in the collection to build a union schema, and flags sub-collections for either a child table or a JSONB column.

FAQ

Are Firestore sub-collections migrated automatically?

They're detected and shown as a separate choice per sub-collection: flatten into the parent as JSONB, or migrate as their own table with a foreign key back to the parent document.

Does CDC see writes made before the migration started?

No — a Firestore listener only sees changes from the moment it attaches. Run the bulk load first to capture existing documents, then enable CDC for anything written afterward.

See every Firestore migration path →