Consultar documentos
Presentación
Firebase Auth
Cloud Firestore
Cloud Storage
Cloud Functions
Curso Firebase para Web se encuentra en desarrollo. Vuelve pronto para encontrar nuevas lecciones.
- Firebase Cloud Firestore permite realizar consultas para encontrar los documentos y las colecciones que necesitas en tu proyecto a través del método
where()
. - Por ejemplo, vamos a pedir todos los documentos que tengan una propiedad
name
igual a "Guizmo".
const query = await db.collection("users").where("name", "==", "Guizmo").get();
query.forEach((querySnapshot) => console.log(querySnapshot.data().name));
- Como ves basta finalizar la consulta con el método
get()
para obtener los resultados iterando sobre sus snapshots y desenvolverlos a su vez con el métododata()
. Todo esto ya lo hemos utilizado en anteriores lecciones. - El operador que hemos usado
==
es el de comparación igual a, pero obviamente hay muchos más como puedes ver en la documentación. Vamos a jugar con algunos. - Con el operador no igual a
!=
busca documentos con propiedades que no sean igual al valor suministrador. En este ejemplo cualquier documento que contenga la propiedadcreated
.
const query = await db.collection("users").where("created", "!=", false).get();
query.forEach((querySnapshot) => console.log(querySnapshot.data().id));
- También dispones de los operadores
in
,not-it
yarray-contains
que sirven para comprobar si el valor de una propiedad de un documento se encuentra entre diferentes opciones. - Con
in
buscamos que el valor se encuentre entre las opciones especificadas en la matriz.
const query = await db
.collection("users")
.where("name", "in", ["Guizmo", "Juan Andrés"])
.get();
query.forEach((querySnapshot) => console.log(querySnapshot.data().name));
- Por otro lado, con
array-contains-any
, buscamos valores en propiedades matriz de documentos que coincidan con alguno de los especificados.
const query = await db
.collection("users")
.where("favs", "array-contains-any", ["dusk", "rain"])
.get();
query.forEach((querySnapshot) => console.log(querySnapshot.data().name));
- Quizás te estés preguntado si no se pueden hacer consultas tipo
like
con Cloud Firestore, y la respuesta es no (de forma nativa) ya que se crean índices de todos los campos de tus documentos y no existe ningún método para usar expresiones regulares, por ejemplo. - Algo reciente es la posibilidad de hacer consultas de grupo a colecciones con el mismo identificador, ya que de forma estándar los resultados pertenecen a una única colección. Exploraremos esta función más adelante en el propio proyecto del curso.
El primer headless CMS tanto para desarrolladores como para marketers. Pruébalo gratis.
¿Tienes alguna pregunta sobre esta lección de Curso Firebase para Web?
Resuelve todas tus dudas sobre Firebase en la Comunidad de Escuela Vue: un lugar donde participar, aprender y ayudar. ¡Te esperamos!.
Tras el registro (si no lo has hecho ya) serás redirigido/a al canal adecuado en la Comunidad.