Attempt the query in your app; if a composite index is required, Firestore returns an error with a direct link to create the index in the Firebase console — click that link as the fastest path.
Alternatively, define the index in `firestore.indexes.json`: add an entry under `indexes` with `collectionGroup`, `queryScope`, and the `fields` array specifying each field and its `order` (ASCENDING or DESCENDING).
Deploy the index with the Firebase CLI: `firebase deploy --only firestore:indexes`.
Monitor index build status in the Firebase console under Firestore > Indexes; large collections can take minutes to hours.
Once the index status is 'Enabled', re-run your query to confirm it executes without error.
Known gotchas
Firestore automatically creates single-field indexes; composite indexes are only needed when filtering or ordering on multiple fields simultaneously.
There is a limit on the number of composite indexes per database — audit and delete unused indexes to stay within the quota.
An `array-contains` filter on a field combined with ordering on a different field always requires a composite index.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp