SDK da Web do Cloud Firestore Lite

O Firestore é uma boa solução de banco de dados escalonável para manter os dados sincronizados entre os clientes da Web.

Em casos de vários aplicativos, o suporte off-line gerenciado do Firestore é muito importante, já que ele permite que você crie aplicativos responsivos que funcionem independentemente da latência da rede ou conexão de Internet. No entanto, SDKs com muitos recursos têm um custo significativo. O que o Firebase oferece para apps que precisam somente das operações básicas de criação, leitura, atualização e exclusão e não precisam de suporte off-line gerenciado?

Solução: Firestore Lite

O Firestore Lite é um SDK do Firestore leve, independente e somente para REST compatível com buscas, consultas e atualizações de documentos únicos, com uma fração do tamanho normal do SDK da Web. O Firestore Lite omite a compensação de latência, o armazenamento em cache off-line, a retomada de consultas e os listeners de snapshots, mas, em casos de uso específicos, as reduções no tamanho da biblioteca e no tempo de inicialização são ótimas.

Importar o Firestore Lite

O Firestore Lite está disponível via npm como parte do SDK modular. Portanto, ele é totalmente modular e permite a remoção de código morto.

O estilo de importação a seguir é compatível.

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

Recursos de API incompatíveis com o Firestore Lite

Para fins de tamanho e velocidade, o Firestore Lite omite estes recursos do SDK padrão do Firestore:

  • Manipuladores de evento do DocumentSnapshot. O método onSnapshot e os objetos DocumentChange, SnapshotListenerOptions, SnapshotMetadata, SnapshotOptions e Unsubscribe não estão incluídos.
  • Ajudantes de persistência. Os métodos enableIndexedDBPersistence, enableMultiTabIndexedDbPersistence e clearIndexedDbPersistence não estão incluídos.
  • Pacotes do Firestore. O método loadBundle e os métodos relacionados, bem como os objetos LoadBundleTask e LoadBundleTaskProgress não estão incluídos.

Implementação de buscas, consultas e atualizações em documentos

Depois de importar o Firestore Lite, é possível fazer todas as APIs conhecidas receberem e atualizarem chamadas. Todos os casos de uso são aplicáveis para adicionar e receber dados.

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');

Quando usar o Firestore Lite

Pode ser difícil decidir quando liberar os recursos de persistência e armazenamento em cache off-line do SDK padrão do Firestore. É necessário compreender esses recursos antes de decidir trocá-los pela sobrecarga menor do Firestore Lite. Em geral, considere os fatores a seguir ao decidir se usará o Firestore Lite:

  • Status on-line: o Firestore Lite é adequado para apps que não precisam de atualizações em tempo real e têm conectividade.
  • Restrições de tamanho: o Firestore Lite é excelente se você quer reduzir o tamanho geral do pacote JavaScript.