Skip to content

Browsing and querying

The sidebar

Accounts contain projects, projects contain databases, and databases contain collections. Expand down to a collection and click it to load documents.

Each project can be given a colour, which then appears wherever that project’s data is shown. This sounds cosmetic until you have production and staging open side by side.

View modes

The same result set, five ways:

View What it is for
Table Scanning many documents at once. Columns are fields; values are coloured by Firestore type.
Tree Exploring nested maps and arrays in a single document.
JSON Reading or copying the raw structure.
Log Output from scripts you run.
Schema What fields exist across the collection, their types, and how often each appears.

The schema view is the fastest way to understand a collection you did not design. See Schema inference below.

Building a query

The query bar builds a real Firestore query:

  • Where clauses — one or more, using any of Firestore’s ten operators
  • Order by — a field and a direction
  • Limit — how many documents to fetch

Field names autocomplete from what FireFetch has already seen in the collection.

Missing index errors

Firestore refuses queries that need a composite index which does not exist. Rather than showing you the raw error, FireFetch turns it into a link that opens the Firebase Console page which creates exactly that index.

Filtering without re-querying

Once documents are loaded, the filter box narrows what is displayed without going back to Firestore. This costs nothing and is instant, which makes it the right tool for poking around inside a result set you have already paid for.

Remember that it only filters documents already fetched — it is not a substitute for a where clause when the collection is larger than your limit.

Missing documents

In Firestore, deleting a document that has subcollections leaves the subcollections in place. The parent no longer exists, but its children do — and they are easy to lose track of.

Toggle Show missing documents to surface these phantom parents, the same way the Firebase Console does.

Schema inference

Open the schema view and FireFetch samples the collection, reporting for each field path:

  • The inferred type, or types, if it varies
  • What percentage of sampled documents contain it
  • Whether it is ever null
  • Example values

Analyse more widens the sample up to 500 documents. From here you can also generate a TypeScript interface and copy it straight into your codebase.

Live mode

Click Live to subscribe to the current query with onSnapshot. Rows update in place as documents change, flashing briefly so you can see what moved.

Live mode holds an open listener, and every change delivered is a billable read. FireFetch warns you if you start a live query with no limit set.

Following references

A reference field is clickable. Click it and FireFetch opens the referenced document, keeping a breadcrumb trail so you can walk back up — users/abc → orders/xyz → products/p001.

Tabs and split view

Open as many tabs as you like, and split the window into two independent panes. Tabs are restored when you reopen FireFetch, so a half-finished investigation survives a restart.

Something unclear or out of date? Email[email protected].