Usando firestore v9 me enfrenté a 1 problema. Tengo una lista de documentos, y aquí 1 de ellos:
end_hour: 21 master: "WIZ1d74QmvMNDEQKulJyiQNCnad2" start_hour: 13 working_day: January 11, 2022 at 9:00:00 PM UTC+3
Y trato de recibir todos los documentos, donde master es igual a la ID pasada y working_day más que la Fecha pasada.
const response = await db.collection('schedule') .where('working_day', '>=', new Date()) .where('master', '==', masterId) .get();Esta solicitud no devuelve ningún dato en absoluto, pero cuando solicito usar solo primero
const response = await db.collection('schedule') .where('working_day', '>=', new Date()).get()o cuando hago una consulta por segundo campo
const response = await db.collection('schedule') .where('master', '==', masterId) .get();Ambos funcionan solos, pero no en pareja y simplemente no sé cuál es el problema.
Como mencionó Caio, necesitará un índice compuesto. De https://cloud.google.com/firestore/docs/query-data/queries#compound_queries , dice "Puede encadenar múltiples métodos de operadores de igualdad (== o array-contains) para crear consultas más específicas (Y lógico) Sin embargo, debe crear un índice compuesto para combinar operadores de igualdad con los operadores de desigualdad, <, <=, > y !=".