java android firebase google-cloud-firestore

java - Firestore whereEqualTo, orderBy y limit(1) no funciona



android firebase (1)

Esta consulta no funcionará a menos que cree un index para ella. Esto se puede hacer al crearlo manualmente en su Consola Firebase o si está utilizando Android Studio, encontrará en su logcat un mensaje que suena así:

FAILED_PRECONDITION: The query requires an index. You can create it here: ...

Simplemente haga clic en ese enlace o copie y pegue la url en un navegador web y su índice se creará automáticamente.

Quiero consultar mi colección de ejercicios para el último entrenamiento de una rutina. Lo que significa que hago una consulta con whereEqualTo mi ejemplo de rutina, ordénelo por el TimeStamp Iniciado en orden descendente y luego limite a 1 y luego tome esta 1ª Clave / Id del Entrenamiento.

Sin embargo esto no funciona. whereEqualTo y orderBy funcionan por separado pero no combinados. ¿Qué estoy haciendo mal?

fm.getColRefWorkout().whereEqualTo("routineKey", routineKey).orderBy("startTimeStamp", Query.Direction.DESCENDING).limit(1).get().addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() { @Override public void onSuccess(QuerySnapshot documentSnapshots) { workoutKey = documentSnapshots.getDocuments().get(0).getId(); //To stuff with this workoutKey } });