Firebase Summit のすべての発表内容に目を通し、Firebase を活用してアプリ開発を加速し、自信を持ってアプリを実行できる方法をご確認ください。 詳細

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メソッドとDocumentChangeSnapshotListenerOptionsSnapshotMetadataSnapshotOptions 、およびUnsubscribeオブジェクトは含まれません。
  • 永続化ヘルパーenableIndexedDBPersistenceenableMultiTabIndexedDbPersistence 、およびclearIndexedDbPersistenceメソッドは含まれていません。
  • Firestore バンドルloadBundleメソッドと関連メソッド、およびLoadBundleTaskLoadBundleTaskProgressオブジェクトは含まれません。

ドキュメントのフェッチ、クエリ、および更新を実装する

Firestore Lite をインポートすると、使い慣れた API の get 呼び出しと update 呼び出しをすべて行うことができます。データの追加とデータ取得のユース ケースはすべて適用されます。

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 が最適です。