SDK web de Cloud Firestore Lite

Firestore es una excelente solución de base de datos escalable para mantener datos sincronizados entre clientes web.

En muchas apps, el soporte sin conexión administrado de Firestore es especialmente importante, ya que te permite compilar apps responsivas que funcionan sin importar la latencia de la red ni la conectividad a Internet. Sin embargo, los SDK con muchas funciones tienen un costo relativo a los tamaños. ¿Qué ofrece Firebase a las apps que solo usan operaciones básicas de creación, lectura, actualización y eliminación, y que no necesitan soporte sin conexión administrado?

Solución: Firestore Lite

Firestore Lite es un SDK de Firestore independiente y ligero exclusivo para REST que admite recuperaciones de documentos únicos, ejecución de consultas y actualizaciones de documentos en una fracción del tamaño normal del SDK web. Firestore Lite no incluye compensación de latencia, almacenamiento en caché sin conexión, reanudación de consultas ni objetos de escucha de instantáneas. Sin embargo, en ciertos casos de uso, las reducciones del tamaño de la biblioteca y del tiempo de inicio son una gran ventaja.

Importa Firestore Lite

Firestore Lite está disponible a través de npm como parte del SDK modular. Por lo tanto, es completamente modular y se puede eliminar el código no utilizado.

Se admite el siguiente estilo de importación.

import { initializeApp } from "firebase/app";
import {
   getFirestore,
   getDoc,
   updateDoc
} from 'firebase/firestore/lite';

Funciones de la API no compatibles con Firestore Lite

Para disminuir el tamaño y mejorar la velocidad, Firestore Lite no incluye las siguientes funciones del SDK estándar de Firestore:

  • Controladores de eventos de DocumentSnapshot: No se incluyen el método onSnapshot ni los objetos DocumentChange, SnapshotListenerOptions, SnapshotMetadata, SnapshotOptions y Unsubscribe.
  • Asistentes de persistencia: No se incluyen los métodos enableIndexedDBPersistence, enableMultiTabIndexedDbPersistence ni clearIndexedDbPersistence.
  • Paquetes de Firestore: No se incluyen el método loadBundle, los métodos relacionados, ni los objetos LoadBundleTask ni LoadBundleTaskProgress.

Implementa recuperaciones, consultas y actualizaciones de documentos

Después de importar Firestore Lite, puedes realizar todas las llamadas de obtención y actualización de la API que ya conoces. Son válidos todos los casos de uso para agregar datos y obtener datos.

import {
 getFirestore,
 getDoc,
 updateDoc,
 doc
} from '@firebase/firestore/lite';

const firestore = getFirestore(app);
const docRef = doc(firestore, 'collection/doc');
const docSnap = await getDoc(docRef);
await updateDoc(docRef, "field", 'value');

Cuándo usar Firestore Lite

Puede ser difícil decidir cuándo descartar las funciones de persistencia y almacenamiento en caché sin conexión del SDK estándar de Firestore. Debes comprender estas funciones antes de renunciar a ellas a cambio de la sobrecarga menor que ofrece Firestore Lite. En general, ten en cuenta estos factores cuando decidas si usarás Firestore Lite:

  • Estado de conexión: Firestore Lite es ideal para apps que no necesitan actualizaciones en vivo y tienen conectividad.
  • Restricciones de tamaño: Firestore Lite es ideal si quieres reducir el tamaño total del paquete de JavaScript.