Consultas y Operaciones de Datos en Firestore
Clase 19 de 32 • Curso de Firebase 5 para Web
Contenido del curso
Consola Web de Administración
Autenticación de Usuarios
- 6

Autenticación y Creación de Usuarios con Firebase
06:30 min - 7

Autenticación con Firebase: Email y Google paso a paso
13:12 min - 8

Autenticación de Usuarios con Firebase: Registro y Verificación de Email
15:02 min - 9

Autenticación con Google usando Firebase en aplicaciones web
06:22 min - 10

Implementación de Autenticación con Facebook en Firebase
09:47 min - 11

Gestión de Autenticación de Usuarios con Firebase
11:42 min - 12

Gestión de Usuarios en Firebase: Creación, Inhabilitación y Plantillas
05:05 min - 13

Exportar e Importar Usuarios en Firebase Auth
04:17 min
Gestión de la Base de Datos
- 14

Firestore: Gestión y Estructura de Datos en Firebase
08:36 min - 15
Comparación entre Realtime Database y Firestore de Firebase
02:11 min - 16

Configuración de Firestore en un Proyecto Firebase
09:53 min - 17

Inserción de documentos en Firestore con JavaScript
10:53 min - 18

Consultas en Tiempo Real con Firestore para Aplicaciones Web
15:01 min - 19

Consultas y Operaciones de Datos en Firestore
Viendo ahora - 20

Reglas de Seguridad en Bases de Datos con Firestore
08:07 min - 21

Creación y gestión de índices en Firestore para optimizar consultas
07:13 min
Almacenamiento de archivos
Hosting
Notificaciones Push
Conclusiones
¿Qué capacidades avanzadas ofrece Firestore para consultas e inserciones de datos?
Firestore, la base de datos no relacional de Google Cloud, proporciona una serie de potentes herramientas para manejar datos de forma eficiente. En este artículo, exploraremos diversas capacidades de Firestore en la consulta e inserción de datos, desde operaciones básicas hasta técnicas avanzadas como las operaciones batch y el manejo de datos con índices.
¿Cómo se realiza una inserción con un identificador propio?
Una de las funcionalidades útiles de Firestore es la inserción de documentos con un identificador proporcionado por el usuario. Aunque Firestore puede generar automáticamente un ID único, a veces puede ser necesario asignar un identificador propio. Para ello, se utiliza una función que permite definir el ID del documento al momento de la inserción.
const postRef = firestore.collection('posts').doc('customID');
postRef.set({
title: 'Custom Post',
content: 'This is a custom ID post'
});
¿Qué son las operaciones batch y cómo se ejecutan?
Las operaciones batch permiten ejecutar múltiples operaciones simultáneamente. Son ideales para mejorar el rendimiento de la aplicación al reducir latencia en la comunicación con Firestore.
- Declarar operaciones batch: Se asigna una referencia para ejecutar las operaciones.
- Adjuntar las operaciones: Utilizar
batch.setpara insertar documentos. - Confirmar las operaciones: Con
batch.commitse ejecutan todas las operaciones.
const batch = firestore.batch();
const post1Ref = firestore.collection('posts').doc('post1');
const post2Ref = firestore.collection('posts').doc('post2');
const post3Ref = firestore.collection('posts').doc('post3');
batch.set(post1Ref, { title: 'Batch Post 1' });
batch.set(post2Ref, { title: 'Batch Post 2' });
batch.set(post3Ref, { title: 'Batch Post 3' });
batch.commit().then(() => {
console.log('Batch executed successfully.');
});
¿Cómo se añade un nuevo campo a un documento sin reemplazar los existentes?
Para actualizar un documento añadiendo un nuevo campo sin perder los existentes, Firestore ofrece la opción de fusionar los campos utilizando el atributo merge.
const postRef = firestore.collection('posts').doc('postID');
postRef.set({ imageLink: 'http://example.com/image.png' }, { merge: true });
¿Cómo se realizan actualizaciones de documentos?
Firestore permite actualizar campos de un documento específico mediante la función update. Esto involucra referenciar el documento y proporcionar un objeto con los campos a actualizar.
const postRef = firestore.collection('posts').doc('postID');
postRef.update({ title: 'Updated Title' });
¿Qué opciones existen para realizar consultas en Firestore?
Firestore soporta una variedad de consultas directas y compuestas que permiten extraer datos siguiendo criterios específicos.
Consultas directas
Para obtener un documento específico, se utiliza .get() sobre la referencia del documento.
const docRef = firestore.collection('posts').doc('postID');
docRef.get().then(doc => {
console.log(`Document Title: ${doc.data().title}`);
});
Consultas con filtros
Para buscar documentos que cumplan ciertos criterios, se puede usar filtros where.
firestore.collection('posts')
.where('title', '==', 'Specific Title')
.get()
.then(snapshot => {
snapshot.forEach(doc => {
console.log(doc.id, '=>', doc.data());
});
});
Consultas compuestas
Firestore soporta consultas compuestas usando múltiples filtros con operadores como >=, <=, y ==.
firestore.collection('posts')
.where('author', '==', 'AuthorName')
.where('date', '<=', new Date())
.get()
.then(snapshot => {
snapshot.forEach(doc => {
console.log(doc.id, '=>', doc.data());
});
});
¿Cómo se gestionan los datos con consultas ordenadas y limitadas?
Firestore permite ordenar y limitar la cantidad de datos devueltos por una consulta mediante orderBy y limit.
firestore.collection('posts')
.orderBy('title')
.limit(3)
.get()
.then(snapshot => {
snapshot.forEach(doc => {
console.log(doc.id, '=>', doc.data());
});
});
¿Cómo eliminamos campos y documentos completos?
La eliminación de campos, así como de documentos completos, puede hacerse usando las funciones update para campos y delete para documentos.
Eliminar un campo específico
const postRef = firestore.collection('posts').doc('postID');
postRef.update({
unwantedField: firebase.firestore.FieldValue.delete()
});
Eliminar un documento completo
firestore.collection('posts').doc('postID').delete().then(() => {
console.log('Document successfully deleted!');
});
¡Estos son solo algunos de los métodos que Firestore ofrece para manejar datos de manera eficiente! A medida que te adentres en su uso, descubrirás que puedes optimizar aún más tus aplicaciones utilizando Firestore. Siempre es un buen momento para seguir aprendiendo y profundizando en estas tecnologías potentes.