Веб-SDK Cloud Firestore Lite

Firestore — это хорошее масштабируемое решение для баз данных, позволяющее синхронизировать данные между веб-клиентами.

Для многих приложений управляемая офлайн-поддержка Firestore особенно важна, позволяя создавать адаптивные приложения, работающие независимо от задержек сети и интернет-подключения. Однако многофункциональные SDK имеют свою цену. Что предлагает Firebase для приложений, которым требуются только базовые операции создания, чтения, обновления и удаления и которым не нужна управляемая офлайн-поддержка?

Решение: Firestore Lite

Firestore Lite — это лёгкий, автономный Firestore SDK, работающий только на REST и поддерживающий выборку отдельных документов, выполнение запросов и обновление документов, занимая при этом лишь малую часть объёма обычного Web SDK. В Firestore Lite отсутствуют функции компенсации задержки, автономного кэширования, возобновления запросов и прослушивания снимков, но в некоторых случаях сокращение размера библиотеки и времени запуска является существенным преимуществом.

Импорт Firestore Lite

Firestore Lite доступен через npm как часть модульного SDK . Таким образом, он полностью модульный и поддерживает Tree Shake.

Поддерживается следующий стиль импорта.

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

Функции API, не поддерживаемые Firestore Lite

Из соображений размера и скорости в Firestore Lite отсутствуют следующие функции стандартного Firestore SDK:

  • Обработчики событий DocumentSnapshot . Метод onSnapshot и объекты DocumentChange , SnapshotListenerOptions , SnapshotMetadata , SnapshotOptions и Unsubscribe не включены.
  • Методы обеспечения персистентности . Методы enableIndexedDBPersistence , enableMultiTabIndexedDbPersistence и clearIndexedDbPersistence не включены.
  • Пакеты Firestore . Метод loadBundle и связанные с ним методы, а также объекты LoadBundleTask и LoadBundleTaskProgress не включены.

Реализовать выборку, запросы и обновления документов

После импорта Firestore Lite вы сможете выполнять все привычные вызовы API get и update. Все сценарии использования для добавления и получения данных применимы.

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

Когда использовать Firestore Lite

Иногда бывает непросто решить, когда стоит отказаться от стандартных функций автономного хранения и кэширования Firestore SDK. Прежде чем отказаться от них ради более низких накладных расходов Firestore Lite, следует изучить эти функции. В целом, при принятии решения об использовании Firestore Lite учитывайте следующие факторы:

  • Статус «Онлайн» — Firestore Lite подходит для приложений, которым не нужны обновления в реальном времени и которые имеют подключение к Интернету.
  • Ограничения по размеру . Firestore Lite отлично подойдет, если вы хотите уменьшить общий размер пакета JavaScript.