ホームページ > ウェブフロントエンド > jsチュートリアル > 1 回の往復で複数の Firestore ドキュメントを効率的にフェッチするにはどうすればよいですか?

1 回の往復で複数の Firestore ドキュメントを効率的にフェッチするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-13 07:18:12
オリジナル
242 人が閲覧しました

How Can I Efficiently Fetch Multiple Firestore Documents in a Single Round Trip?

Firestore のパフォーマンス: 1 回のラウンドトリップで複数のドキュメントを効率的に取得する

Firestore を使用する場合、複数のドキュメントの取得がパフォーマンスの問題になる可能性があります。特にドキュメントごとに個別のリクエストを行う場合はそうです。データの取得を最適化するには、データベースとの 1 回の往復で複数のドキュメントをフェッチできる機能を活用することが不可欠です。

getAll() メソッドの使用

Node.js で記述されたサーバー側アプリケーションの場合、 getAll() メソッドは、1 回のネットワーク呼び出しで複数のドキュメントを取得する便利な方法を提供します。可変数の DocumentReference オブジェクトを引数として受け入れ、DocumentSnapshot オブジェクトの配列を含む Promise を返します。

例:

const firestore = getFirestore();
const docRef1 = firestore.doc('col/doc1');
const docRef2 = firestore.doc('col/doc2');

firestore.getAll(docRef1, docRef2).then(docs => {
  console.log(`First document: ${JSON.stringify(docs[0])}`);
  console.log(`Second document: ${JSON.stringify(docs[1])}`);
});
ログイン後にコピー

IN クエリ効率的なドキュメント取得

Firestore が最近導入されましたIN クエリ。指定された ID によって複数のドキュメントをフェッチするより効率的な方法を提供します。 FieldPath.documentId() および 'in' 演算子を使用すると、ID のリストに基づいてドキュメントを返すクエリを構築できます。

例:

const firestore = getFirestore();
const query = firestore.collection('col').where(firestore.FieldPath.documentId(), 'in', ["123", "456", "789"]);

query.get().then(docs => {
  docs.forEach(doc => {
    console.log(`Retrieved document with ID: ${doc.id}`);
  });
});
ログイン後にコピー

結論:

getAll() メソッドを利用するか、 IN クエリを使用すると、開発者は Firestore データ取得操作を最適化し、データベースへの往復回数を減らすことができます。このアプローチにより、特に複数のドキュメントを取得する場合や複雑なクエリを実行する場合に、アプリケーションのパフォーマンスと応答性が向上します。

以上が1 回の往復で複数の Firestore ドキュメントを効率的にフェッチするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート