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.