Ya he creado la aplicación de reacción y estoy usando firebase firestore. Entonces, al comenzar a usar no tuve ningún problema, hasta que descubrí que necesitaba crear una consulta como esa:
db.collection('schedule') .where('working_day', '>=', new Date()) .where('master', '==', masterId) .orderBy('working_day', 'desc') .get();Tengo una colección llamada horario y esta colección de horarios tiene una lista de documentos . Cada documento tiene estructura:
working_day: timestamp; start_hour: number; end_hour: number; master: string;Cuando llamé a esta consulta, no vi ningún resultado (la solicitud desapareció, pero no hubo ningún resultado). Alguien me sugirió agregar indexación compuesta y debe resolver este problema. Lo hice usando la pestaña de indexación de firestore y ahora tengo esta indexación:
Collection ID Fields indexed Query scope Status schedule working_day Descending master Descending Collection EnabledSe ha aplicado con éxito, pero mi solicitud sigue sin ningún resultado. También sé que firestore podría notar que necesito aplicar esta indexación y proporcionarme el enlace, pero no veo este enlace. ¿Dónde debería encontrar esto? ¿O tal vez hago algo mal?
Me rompí la cabeza durante los 2 días y no encontré por qué tengo este problema
Parece que working.day está almacenado en su base de datos de Firestore como una marca de tiempo, pero la condición de su consulta se compara con un objeto de fecha de JavaScript que podría estar causando un problema. Intente reemplazar el objeto de fecha con una marca de tiempo de Firebase como el código a continuación.
db.collection('schedule') .where('working_day', '>=', new firebase.firestore.Timestamp.now()) .where('master', '==', masterId) .orderBy('working_day', 'desc') .get();