Catch up on everthing we announced at this year's Firebase Summit. Learn more

Веб-SDK Cloud Firestore Lite

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

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

Решение: Firestore Lite

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

Импортировать Firestore Lite

Firestore Lite доступен через НПМ в рамках модульного SDK . Таким образом, он полностью модульный и может встряхиваться.

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

import { initializeApp } from "firebase/app";
import {
   getFirestore,
   enableIndexedDbPersistence,
   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

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

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