Al tratar de hacer una query en firebase con una condición where y un orderby, obtengo el siguiente error:
Operation was rejected because the system is not in a state required for the operation’s execution. If performing a query, ensure it has been indexed via the Firebase console.
El propio mensaje de error nos da la solución. Tenemos que crear un índice en Firestore para poder utilizar esas condiciones en nuestra query. Se tratará de un índice compuesto en el que tenemos que indicar por qué campos estamos filtrando y en qué orden. Normalmente será ascendente, o descendente en el caso de un campo que utilicemos en el orderby si éste es su sentido.
Por suerte, firebase y flutter nos facilitan la vida en ese sentido y nos proporcionan una URL para generar lo índices que necesitamos automáticamente. En mi caso no me aparecía, pero al parar la app y volver a ejecutarla, solamente en la primera ocasión en la que se produce el error me aparece la URL. Se ve claramente a continuación del mensaje «The query requires an index. You can create it here»:

Este enlace nos facilita el trabajo porque nos lleva directamente a la consola de Firebase de nuestro proyecto y nos sugiere la creación del índice con los campos exactos que necesitamos:

Pulsamos en «Crear índice» y tras unos minutos con el estado «Compilando», pasará a estar «Habilitado» y listo para su uso. (En el proyecto que pongo de ejemplo tengo dos índices de este tipo, sería el segundo índice el que corresponde con la captura anterior).

Cuando volvamos a nuestro código y ejecutemos la consulta, veremos que ya no tenemos ningún problema.
Firestore está muy bien, pero las primera veces toca pelearse hasta aprender estas cosas y «pillarle el truco».