Tengo este campo para la colección en users con 2 estados de condition1 y condition2 . Y también quería ordenar esto en orden descendente. Lo probé con esto, pero mostrará que primero necesito crear un índice.
El status es en cadena. Y el createdAt está en la marca de tiempo
const userRef = collection(db, "users"); const q = query( ordersRef, where("status", "==", "Condition1"), orderBy("createdAt", "desc") ); const querySnapshot = await getDocs(q);Además, ¿es necesario filtrar esto con Firebase o simplemente podría filtrar usando Javascript? Sin embargo, todavía me gustaría saber cómo puedo usar la indexación aquí.
Si intenta la consulta anterior sin crear primero el índice requerido, Cloud Firestore devuelve un mensaje de error que contiene un enlace que puede seguir para crear el índice que falta .
Esto sucede cada vez que intenta realizar una consulta que no es compatible con un índice. También puede definir y administrar índices compuestos que almacenan un mapeo ordenado de todos los documentos en una colección, en función de una lista ordenada de campos para indexar manualmente mediante la consola o Firebase CLI .
Cloud Firestore no crea automáticamente índices compuestos como lo hace con los índices de un solo campo debido a la gran cantidad de combinaciones de campos posibles. En su lugar, Cloud Firestore lo ayuda a identificar y crear los índices compuestos requeridos a medida que crea su aplicación. Siga el enlace generado a la consola de Firebase, revise la información completada automáticamente y haga clic en Crear. Los índices pueden tardar unos minutos en crearse, según el tamaño de la consulta.
Después de crearlos, puede ver sus índices y su estado en la sección Índices compuestos. Si todavía están construyendo, Firebase console incluye una barra de estado de construcción.