The emulator doesn't enforce composite indexes, so you only find out in production. Equality + orderBy on a different field always needs one.
The link is fine for a one-off, building usually takes a few minutes (longer for big collections). For the future, keep indexes in code:
firebase firestore:indexes > firestore.indexes.json
Commit that file, and it deploys with firebase deploy --only firestore:indexes. When you add a query, add the index there in the same change. You can also ask Windsurf to update firestore.indexes.json whenever it writes a new query, it's good at that once told.