Веб-SDK Cloud Firestore Lite

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

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

Решение: Firestore Lite

Firestore Lite — это облегченный, автономный SDK Firestore, работающий только с 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 исключает следующие функции из стандартного SDK Firestore:

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

Реализуйте операции получения, запроса и обновления документов.

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

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

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

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