It's possible to deploy indexes from the CLI using firebase deploy --only firestore:indexes
.
But is it possible to delete them using the CLI or via a client of some kind?
I can't see any reference to it in the CLI docs. And while there does seem to be a REST endpoint for it here, I'd have to write a client to call it.
Seems pretty clunky to force the user to go into the console UI and manually click on 'delete' for every index they want to remove. Especially because during development these indexes may change frequently.
UPDATE:
Seems that now the CLI will prompt you to delete indexes that exist remotely but are not defined in firestore.indexes.json.
PREVIOUS ANSWER:
I've submitted a feature request, but as of now (Jan 29, 2019) it's not possible to do this via the CLI.
To quote the response I received:
This is definitely a highly requested feature, but there's no telling on when it will be implemented. You can keep an eye on the Firebase Release Notes to be informed of the latest from Firebase.