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étodo data(). 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 propiedad created.
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 y array-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.
Código inicial
Aprende Firebase en Escuela Vue

¿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.

Twitter

Sigue el día a día y todo lo relacionado con Escuela Vue a través de su cuenta de Twitter.

Discord

En la Comunidad de Escuela Vue podrás solucionar tus dudas y ayudar a otras personas como tú a solucionar las suyas.

Recibe novedades en tu 📬