¿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
- 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.
- Consultas Avanzadas: Permite realizar consultas complejas y compuestas, lo que facilita la recuperación de datos específicos.
- Sincronización en Tiempo Real: Los datos se sincronizan en tiempo real entre los clientes y la base de datos.
- Soporte Offline: Las aplicaciones pueden seguir funcionando sin conexión y sincronizarse automáticamente cuando se restablece la conexión.
- 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
- Ve a la Consola de Firebase.
- Haz clic en "Agregar proyecto" y sigue las instrucciones para crear un nuevo proyecto.
Paso 2: Agregar Cloud Firestore a tu Proyecto
- En la consola de Firebase, selecciona tu proyecto.
- En el menú de la izquierda, selecciona "Firestore Database".
- Haz clic en "Crear base de datos".
- Selecciona el modo de inicio (modo de prueba o modo bloqueado) y haz clic en "Siguiente".
- 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
- En la consola de Firebase, ve a "Configuración del proyecto" y selecciona "Configuración general".
- En la sección "Tus aplicaciones", selecciona "Agregar aplicación" y elige "Web".
- 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
- Crea un nuevo proyecto en Firebase y agrega Cloud Firestore.
- Configura tu aplicación web con el código de configuración de Firebase.
- Agrega un documento a una colección llamada "users" con los siguientes datos:
- name: "Alice"
- email: "[email protected]"
- age: 28
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
- Introducción a la autenticación de Firebase
- Autenticación por correo electrónico y contraseña
- Autenticación de redes sociales
- Gestión de usuarios
Módulo 3: Base de datos en tiempo real de Firebase
- Introducción a la base de datos en tiempo real
- Lectura y escritura de datos
- Estructura de datos y reglas de seguridad
- Capacidades sin conexión
Módulo 4: Cloud Firestore
- Introducción a Cloud Firestore
- Modelo de datos de Firestore
- Operaciones CRUD
- Consultas avanzadas
- Reglas de seguridad
Módulo 5: Almacenamiento de Firebase
- Introducción al almacenamiento de Firebase
- Subida de archivos
- Descarga de archivos
- Metadatos de archivos y seguridad
Módulo 6: Mensajería en la nube de Firebase
- Introducción a la mensajería en la nube
- Envío de notificaciones
- Manejo de notificaciones
- Características avanzadas de mensajería
Módulo 7: Análisis de Firebase
Módulo 8: Funciones de Firebase
- Introducción a las funciones de Firebase
- Escritura de funciones
- Despliegue de funciones
- Activación de funciones
Módulo 9: Monitoreo de rendimiento de Firebase
- Introducción al monitoreo de rendimiento
- Configuración del monitoreo de rendimiento
- Análisis de datos de rendimiento
Módulo 10: Laboratorio de pruebas de Firebase
- Introducción al laboratorio de pruebas de Firebase
- Ejecución de pruebas
- Análisis de resultados de pruebas