¿Qué es Cloud Firestore?

Cloud Firestore es una base de datos NoSQL en tiempo real ofrecida por Firebase. Está diseñada para facilitar el desarrollo de aplicaciones móviles y web, proporcionando una solución escalable y flexible para almacenar y sincronizar datos. A diferencia de la base de datos en tiempo real de Firebase, Cloud Firestore ofrece consultas más avanzadas y una estructura de datos más flexible.

Características Clave de Cloud Firestore

  1. Escalabilidad y Flexibilidad: Cloud Firestore puede manejar grandes cantidades de datos y tráfico, y su estructura de datos flexible permite almacenar datos en documentos y colecciones.
  2. Consultas Avanzadas: Permite realizar consultas complejas y compuestas, lo que facilita la recuperación de datos específicos.
  3. Sincronización en Tiempo Real: Los datos se sincronizan en tiempo real entre los clientes y la base de datos.
  4. Soporte Offline: Las aplicaciones pueden seguir funcionando sin conexión y sincronizarse automáticamente cuando se restablece la conexión.
  5. Seguridad: Ofrece reglas de seguridad detalladas para controlar el acceso a los datos.

Estructura de Datos en Cloud Firestore

Cloud Firestore organiza los datos en documentos y colecciones:

  • Documentos: Son unidades de almacenamiento que contienen datos en pares clave-valor. Cada documento está identificado por un ID único.
  • Colecciones: Son contenedores de documentos. Una colección puede contener múltiples documentos, y cada documento puede contener subcolecciones.

Ejemplo de Estructura de Datos

users (colección)
  |
  |-- userID1 (documento)
  |     |-- name: "John Doe"
  |     |-- email: "[email protected]"
  |     |-- age: 30
  |     |-- posts (subcolección)
  |         |-- postID1 (documento)
  |         |     |-- title: "My First Post"
  |         |     |-- content: "Hello, world!"
  |         |-- postID2 (documento)
  |               |-- title: "Another Post"
  |               |-- content: "More content here."
  |
  |-- userID2 (documento)
        |-- name: "Jane Smith"
        |-- email: "[email protected]"
        |-- age: 25

Configuración Inicial de Cloud Firestore

Paso 1: Crear un Proyecto en Firebase

  1. Ve a la Consola de Firebase.
  2. Haz clic en "Agregar proyecto" y sigue las instrucciones para crear un nuevo proyecto.

Paso 2: Agregar Cloud Firestore a tu Proyecto

  1. En la consola de Firebase, selecciona tu proyecto.
  2. En el menú de la izquierda, selecciona "Firestore Database".
  3. Haz clic en "Crear base de datos".
  4. Selecciona el modo de inicio (modo de prueba o modo bloqueado) y haz clic en "Siguiente".
  5. Selecciona una ubicación para tu base de datos y haz clic en "Listo".

Paso 3: Configurar tu Aplicación

Configuración en una Aplicación Web

  1. En la consola de Firebase, ve a "Configuración del proyecto" y selecciona "Configuración general".
  2. En la sección "Tus aplicaciones", selecciona "Agregar aplicación" y elige "Web".
  3. Sigue las instrucciones para registrar tu aplicación y obtener el código de configuración de Firebase.

Ejemplo de Configuración en JavaScript

// Importa las bibliotecas necesarias de Firebase
import { initializeApp } from "firebase/app";
import { getFirestore } from "firebase/firestore";

// Configuración de Firebase
const firebaseConfig = {
  apiKey: "YOUR_API_KEY",
  authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
  projectId: "YOUR_PROJECT_ID",
  storageBucket: "YOUR_PROJECT_ID.appspot.com",
  messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
  appId: "YOUR_APP_ID"
};

// Inicializa Firebase
const app = initializeApp(firebaseConfig);

// Inicializa Cloud Firestore
const db = getFirestore(app);

Ejercicio Práctico

Objetivo

Configurar Cloud Firestore en una aplicación web y agregar un documento a una colección.

Instrucciones

  1. Crea un nuevo proyecto en Firebase y agrega Cloud Firestore.
  2. Configura tu aplicación web con el código de configuración de Firebase.
  3. Agrega un documento a una colección llamada "users" con los siguientes datos:

Código de Ejemplo

import { initializeApp } from "firebase/app";
import { getFirestore, collection, addDoc } from "firebase/firestore";

const firebaseConfig = {
  apiKey: "YOUR_API_KEY",
  authDomain: "YOUR_PROJECT_ID.firebaseapp.com",
  projectId: "YOUR_PROJECT_ID",
  storageBucket: "YOUR_PROJECT_ID.appspot.com",
  messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
  appId: "YOUR_APP_ID"
};

const app = initializeApp(firebaseConfig);
const db = getFirestore(app);

async function addUser() {
  try {
    const docRef = await addDoc(collection(db, "users"), {
      name: "Alice",
      email: "[email protected]",
      age: 28
    });
    console.log("Document written with ID: ", docRef.id);
  } catch (e) {
    console.error("Error adding document: ", e);
  }
}

addUser();

Solución

El código anterior configura Firebase y Cloud Firestore en una aplicación web y agrega un documento a la colección "users". Al ejecutar la función addUser, se debería ver en la consola el ID del documento agregado.

Conclusión

En esta lección, hemos introducido Cloud Firestore, una base de datos NoSQL en tiempo real de Firebase. Hemos aprendido sobre su estructura de datos, cómo configurarla en un proyecto de Firebase y cómo agregar documentos a una colección. En la próxima lección, profundizaremos en el modelo de datos de Firestore y exploraremos cómo estructurar y organizar los datos de manera eficiente.

Curso de Firebase

Módulo 1: Introducción a Firebase

Módulo 2: Autenticación de Firebase

Módulo 3: Base de datos en tiempo real de Firebase

Módulo 4: Cloud Firestore

Módulo 5: Almacenamiento de Firebase

Módulo 6: Mensajería en la nube de Firebase

Módulo 7: Análisis de Firebase

Módulo 8: Funciones de Firebase

Módulo 9: Monitoreo de rendimiento de Firebase

Módulo 10: Laboratorio de pruebas de Firebase

Módulo 11: Temas avanzados de Firebase

© Copyright 2024. Todos los derechos reservados