Time travel
Read your database as it was last Tuesday
Firestore can already tell you what your data looked like at a past moment. FireFetch puts that behind a clock icon in the query bar.
Point-in-time recovery — timestamp picker in the query bar
screenshot pending · 1400×880
Pick a moment, then browse normally
Toggle the clock in the query bar and choose a timestamp — one hour ago, six hours ago, yesterday, seven days ago, or an exact time you type in. Everything then works the way it always does: the same collections, the same query builder, the same table. It is just showing you a different moment.
FireFetch knows your database's recovery window and will not let you pick a timestamp outside it, so you find out before running a query rather than after it fails.
Documents that no longer exist
This is the part that tends to matter at the worst possible moment. A past timestamp includes documents that have since been deleted — so a collection someone cleared out is still there, readable, exactly as it was.
And you can put them back. Select what you need and restore it into the live database. Recovering three documents someone deleted by mistake becomes a two-minute job instead of a support ticket to Google.
Diff a collection against its own past
Time travel answers “what did this look like?”. Diffing answers “what changed?” — comparing two versions of a collection and reporting exactly what is different.
Live vs a past timestamp
What has this migration actually done so far?
Live vs a saved snapshot
What moved since I checked this morning?
Live vs a file
Does the deployed data match what we intended to seed?
Snapshot vs snapshot
Compare staging against production, field by field.
Results are grouped into added, removed, changed and unchanged, and a changed document expands to show which individual fields differ and how. Not “these two documents are different” — which fields, and what each side holds.
Collection diff — added, removed and changed documents
screenshot pending · 1200×620
What people use it for
- Auditing a data migration while it is still running, rather than hoping.
- Proving to yourself that a backfill touched only what it should have.
- Recovering documents deleted by a script that was pointed at the wrong database.
- Comparing staging against production before a release.
- Reconstructing what a document looked like when a bug report was filed.