Cloud Firestore Lite Web SDK

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

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

Решение: Firestore Lite

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

Импорт Firestore Lite

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

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

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 для получения и обновления данных. Применимы все варианты использования для добавления данных и получения данных.

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.