¿Cómo realizar una consulta con la cláusula condicional where() usando Firebase Modular SDK (v9)?
Consulta de ejemplo en la versión con espacio de nombres (v8):
const status = "live" const publishedAfter = 1630607348811 let q = firebase.firestore().collection("articles") // filters selected by users if (status) q = q.where("status", "==", "live") if (publishedAfter) q = q.where("publishedAt", ">", publishedAfter) const qSnapshot = await q.get()Opción 1: agregar condicionalmenteQueryConstraint usando el anterior como base
let q = query(collection(firestore, "articles")) // filters selected by users if (status) q = query(q, where("status", "==", "live")) if (publishedAfter) q = query(q, where("publishedAt", ">", publishedAfter)) const qSnapshot = await getDocs(q); Opción 2: agregar condicionalmente QueryConstraints a una matriz
const constraints = [] // filters selected by users if (status) constraints.push(where("status", "==", "live")) if (publishedAfter) constraints.push(where("publishedAt", ">", publishedAfter)) const q = query(collection(firestore, "articles"), ...constraints) const qSnapshot = await getDocs(q);