Cloud Firestore Lite Web SDK

Firestore 是可靠的可擴充資料庫解決方案,可保持網路資料同步 用戶端。

對許多應用程式而言,Firestore 的代管離線支援尤其重要。 可讓您建構回應式應用程式,在網路延遲或網路延遲的情況下運作 網際網路連線。不過,功能豐富的 SDK 會增加檔案大小。如果應用程式只需要使用基本建立、讀取、更新和刪除作業,且不需要受管理的離線支援,Firebase 會提供哪些功能?

解決方案:Firestore Lite

Firestore Lite 是輕量、獨立且僅支援 REST 的 Firestore SDK, 在單一 Pod 中, 是一般 Web SDK 大小的一部分Firestore Lite 省略了延遲補償、離線快取、查詢暫停和快照事件監聽器,但在特定用途下,程式庫大小和啟動時間的縮減,可帶來極佳的權衡。

匯入 Firestore Lite

您可以透過 npm 取得 Firestore Lite,做為模組化 SDK 的一部分。因此,它是完全模組化且可樹狀搖晃。

支援下列匯入樣式。

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

Firestore Lite 不支援的 API 功能

就大小和速度而言,Firestore Lite 會在標準中省略這些功能 Firestore SDK:

  • DocumentSnapshot 事件處理常式。不包含 onSnapshot 方法和 DocumentChangeSnapshotListenerOptionsSnapshotMetadataSnapshotOptionsUnsubscribe 物件。
  • 持久性輔助程式enableIndexedDBPersistence enableMultiTabIndexedDbPersistenceclearIndexedDbPersistence 方法 未包含。
  • 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 套件大小。