Cloud Firestore Lite Web SDK

Firestore 是一個很好的可擴展數據庫解決方案,可以在 Web 客戶端之間保持數據同步。

對於許多應用來說,Firestore 的託管離線支持尤為重要,讓您可以構建響應式應用,無論網絡延遲或互聯網連接如何都能正常工作。但功能豐富的 SDK 需要付出一定的代價。 Firebase 為只需要使用基本的創建、讀取、更新和刪除操作且不需要託管離線支持的應用提供什麼?

解決方案:Firestore Lite

Firestore Lite 是一個輕量級、獨立的純 REST Firestore SDK,它支持單個文檔獲取、查詢執行和文檔更新,其大小僅為常規 Web SDK 的一小部分。 Firestore Lite 省略了延遲補償、離線緩存、查詢恢復和快照偵聽器,但對於特定用例,庫大小和啟動時間的減少是一個很好的權衡。

導入 Firestore Lite

Firestore Lite 可作為模塊化 SDK的一部分通過 npm 獲得。因此,它是完全模塊化和可搖樹的。

支持以下導入樣式。

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

Firestore Lite 不支持的 API 功能

對於大小和速度,Firestore Lite 從標準 Firestore SDK 中省略了這些功能:

  • DocumentSnapshot 事件處理程序。不包括onSnapshot方法和DocumentChangeSnapshotListenerOptionsSnapshotMetadataSnapshotOptionsUnsubscribe對象。
  • 毅力幫手。不包括enableIndexedDBPersistenceenableMultiTabIndexedDbPersistenceclearIndexedDbPersistence方法。
  • Firestore 捆綁包。不包括loadBundle方法和相關方法,以及LoadBundleTaskLoadBundleTaskProgress對象。

實現文檔獲取、查詢和更新

導入 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 適用於不需要實時更新且具有連接性的應用程序。
  • 大小限制- 如果您想減少整個 JavaScript 包的大小,Firestore Lite 非常棒。