Oye, estoy haciendo una llamada a la base de datos de Firebase que se ve así:
db.collection("posts").where("location", "==", location) .get().then((querySnapshot) => { [...] }) El usuario puede especificar de qué países le gustaría recibir publicaciones (el método .where() es para eso). Pero también puede elegir todos los países, por lo que en ese caso ya no se necesita el método. ¿Hay alguna manera de agregar métodos dinámicamente?
Algo como esto:
db.collection("posts")if(location != "all"){.where("location", "==", location)} .get().then((querySnapshot) => { [...] })Puedes usar una función
const addLocationCondition = (collection, location) => location === "all" ? collection : collection.where('location', '==', location); addLocationCondition(db.collection('posts'), location).get()...No, no puedes poner un condicional ahí.
Solo use if para decidir si llamar a .where() .
let posts = db.collection("posts"); let filtered; if (location == "all") { filtered = posts; } else { filtered = posts.where("location", "==", location); } filtered.get().then(querySnapshot => { // ... });No estoy completamente seguro acerca de esta API db pero esto debería funcionar:
let query = db.collection("posts") if(location != "all"){ query = query.where("location", "==", location) } query.get().then((querySnapshot) => { [...] })