Por: Juan Andrés Núñez
Juan Andrés Núñez - juanwmedia

Especialista en tecnologías Web. Me dedico a enseñar desarrollo Web moderno a cualquier persona (físicamente en clase y a través de Internet) desde una perspectiva holística: teniendo en cuenta las competencias técnicas necesarias, junto a las habilidades personales o soft skills. Tienes más información en mi Web.

  • Tras aprender lo imprescindible sobre cómo estructurar datos en Cloud Firestore, es el momento de aprender a agregarlos de forma programática. Aunque lo haremos constantemente durante el proyecto, en esta lección veremos dos de las formas más utilizadas.
  • Primero, a través del método set() podemos añadir un nuevo documento a cualquier colección o subcolección.
  • Como ya vimos en una lección anterior, dentro de los documentos puedes añadir cualquier tipo JavaScript válido como matrices, booleanos, objetos y demás.
import { db } from "../firebase";
const user = { name: "Juan", city: "Valencia", country: "Spain" }
await db.collection("users").doc("juanwmedia").set(user)
  • Si ya existiese un documento cono ese identificador, se sobre escribiría. Para evitarlo podemos fusionar ambos objetos pasando indicando true en la opción merge.
await db.collection("users").doc("juanwmedia").set(user, {merge: true} )
  • Por otro lado, con el método add() también podemos añadir documentos, la única diferencia es que dejamos que Cloud Firestore sea el que cree una ID única para el mismo, así te aseguras al 100% de que la inserción se va a realizar.
  • En mi experiencia la gran mayoría de las veces uso add() para crear nuevos documentos para mis colecciones: nuevo usuario, nuevo mensaje, nueva sala, etc.
await db.collection("users").add(user)
  • ⚠️ En la documentación se cita algo importante: las ID's generadas con add() no están basadas en timestamps (sí lo están en Realtime Database) por lo que necesitarás añadir algún tipo de marca de tiempo si quieres ordenar.
  • Como al utilizar add() estás delegando en Cloud Firestore la creación de la "clave primaria", puedes obtener explícitamente una nueva referencia de documento doc() para luego utilizar en otros lugares, por ejemplo para guardar la propia id en el documento.
const docRef = db.collection("users").doc();
await docRef.set({ name: "Guizmo", created: Date.now(), id: docRef.id });
  • Estas son las principales formas de añadir documentos en Firestore. Dejaremos las transacciones para más adelante donde las utilizaremos para actualizar secciones de documentos cuando el usuario actualiza su perfil.

Presentación


Firebase Auth


Cloud Firestore 🔥


Cloud Storage 🗄


No te pierdas ninguna novedad

Escuela Vue en Twitter

Participa en la Comunidad Escuela Vue

Comunidad Escuela Vue