Esto me está frustrando mucho. Espero que la gente amable pueda ayudarme.
Tengo una base de datos firebase firestore que almacena información sobre propiedades y ciudades. Todas las propiedades contienen un par clave:valor llamado ubicación_ciudad. Es una cadena que almacena la ciudad en la que reside la propiedad.
He creado un cuadro desplegable en una página web con una lista de ciudades disponibles. La idea es mostrar dinámicamente las propiedades de la ciudad seleccionada, mediante el método .where(). El tercer parámetro aceptado por el método es la cadena que desea consultar.
Quiero pasar el valor de texto de la lista desplegable a la consulta.
Aquí está mi código:
let selectedCityViewHomes; function getDropdownSelection(sel) { selectedCityViewHomes = sel.options[sel.selectedIndex].text; selectedCityViewHomes.toString(); } db.collection('Homes') .where('location_city', '==', selectedCityViewHomes) .get() .then(snapshot => { snapshot.docs.forEach(doc => { renderHome(doc); }); });El método de consulta solo parece funcionar si ingresa manualmente una cadena en el parámetro y no parece permitirle pasar una variable (que es una cadena) al método.
He intentado concatenar "'" a ambos lados para imitar a 'Manchester', por ejemplo, y tampoco funcionó.
AIT
charlie
EDITAR: encontré dónde me había equivocado, creo que fue un problema de alcance. Lo arreglé creando una función que envolvía el código db.collection y pasaba la variable como argumento.
const updateHomesViewHomes = (input) => { db.collection('Homes').where('location_city', '==', input).get().then((snapshot) => { homesViewHomes.innerHTML = ""; snapshot.docs.forEach(doc => { renderHome(doc); }); }); };Gracias por las respuestas, espero que esto ayude a alguien.