コンソールへ移動

使用量と制限

このガイドでは Cloud Firestore の制限について説明します。Cloud Firestore の費用の詳細については、Cloud Firestore の料金をご覧ください。

使用量をモニタリングする

Cloud Firestore の使用量をモニタリングするには、Firebase コンソールで Cloud Firestore の [使用状況] タブを開きます。ダッシュボードを使用して、異なる期間の使用量を比較できます。

Google Cloud Platform Console での使用量の詳細

Firebase プロジェクトを作成すると、Google Cloud Platform にもプロジェクトが作成されます。Cloud Platform Console の App Engine の割り当てページでは、保存データや下りネットワークなど、Cloud Firestore の使用量に関する追加情報を追跡できます。

無料の割り当て

Cloud Firestore では費用をかけずに使い始めることができるよう、無料の割り当てが用意されています。無料の割り当ての容量は以下のとおりです。割り当てがさらに必要な場合は、Cloud Platform プロジェクトに対する課金を有効にする必要があります。

割り当ては日単位で適用され、太平洋時間の午前 0 時頃にリセットされます。

無料枠 割り当て
保存データ 1 GiB
ドキュメントの読み取り 50,000/日
ドキュメントの書き込み 20,000/日
ドキュメントの削除 20,000/日
ネットワーク(下り) 10 GiB/月

標準的な制限

次の表は、Cloud Firestore の使用量に適用される制限を示しています。

コレクション、ドキュメント、およびフィールド

制限 詳細
コレクション ID の制約
  • 有効な UTF-8 文字でなければなりません。
  • 1,500 バイト以下にする必要があります。
  • スラッシュ(/)は使用できません。
  • 1 つのピリオド(.)または 2 つのピリオド(..)のみで構成することはできません。
  • 次の正規表現とは照合できません。__.*__
サブコレクションの最大深度 100
ドキュメント ID に関する制約
  • 有効な UTF-8 文字でなければなりません。
  • 1,500 バイト以下にする必要があります。
  • スラッシュ(/)は使用できません。
  • 1 つのピリオド(.)または 2 つのピリオド(..)のみで構成することはできません。
  • 次の正規表現とは照合できません。__.*__
ドキュメント名の最大サイズ 6 KiB
ドキュメントの最大サイズ 1 MiB(1,048,576 バイト)
フィールド名の制約 有効な UTF-8 文字でなければなりません。
フィールド名の最大サイズ 1,500 バイト
フィールドパスの制約
  • フィールド名を 1 つのピリオド(.)で区切る必要があります。
  • フィールド名が以下の要件を満たしていない場合は、各フィールド名をバッククォートで囲む必要があります。
    • フィールド名に文字 a-zA-Z0-9、およびアンダースコア(_)だけが含まれている。
    • フィールド名の先頭文字が 0-9 以外である。
フィールドパスの最大サイズ 1,500 バイト
フィールド値の最大サイズ 1 MiB - 89 バイト(1,048,487 バイト)
マップまたは配列内のフィールドの最大深度 20

書き込みとトランザクション

制限 詳細
API リクエストの最大サイズ 10 MiB
データベースあたりの最大書き込み回数/秒 10,000(最大 10 MiB/秒)
ドキュメントへの最大書き込み速度 1 秒あたり 1
コレクションへの最大書き込み速度(コレクションに含まれているドキュメントのインデックス付きフィールドには順次値が含まれている) 1 秒あたり 500
Commit オペレーションに渡すか、トランザクションで実行することができる書き込みの最大数 500
Commit オペレーションまたはトランザクションで 1 件のドキュメントで実行できるフィールド変換の最大数 500
トランザクションの時間制限 270 秒 + 60 秒のアイドル時間

リアルタイム アップデート

制限 詳細
データベースあたりのモバイル / ウェブ クライアントの最大同時接続数 1,000,000

インデックス

以下の制限は、単一フィールド インデックス複合インデックスに適用されます。

制限 詳細
データベース 1 つあたりの複合インデックスの最大数 200
データベース 1 つあたりの単一フィールド インデックス除外の最大数 200

ドキュメントごとのインデックス エントリの最大数

40,000

インデックス エントリの数は、ドキュメントに関する次の数の合計です。

  • 単一フィールド インデックス エントリ数
  • 複合インデックス エントリ数
インデックス エントリの最大サイズ

7.5 KiB

Cloud Firestore でインデックス エントリのサイズを計算する方法については、インデックス エントリのサイズをご覧ください。

ドキュメントのインデックス エントリの最大合計サイズ

8 MiB

合計サイズは、ドキュメントに関する次の数の合計です。

  • ドキュメントの単一フィールド インデックス エントリの合計サイズ
  • ドキュメントの複合インデックス エントリの合計サイズ
  • インデックス登録されるフィールド値の最大サイズ

    1,500 バイト

    1,500 バイトを超えるフィールド値は切り捨てられます。切り捨てられたフィールド値が含まれるクエリでは、結果が矛盾する場合があります。

    セキュリティ ルール

    制限 詳細
    リクエストあたりの exists()get()getAfter() 呼び出しの最大数
    • 単一ドキュメントに対するリクエストとクエリ リクエストの場合は 10。
    • 複数のドキュメントに対する読み取り、トランザクション、一括書き込みの場合は 20。各オペレーションには、前述の上限(10)も適用されます。

      たとえば、3 つの書き込みオペレーションを含めた一括書き込みリクエストを作成するとします。セキュリティ ルールでは、ドキュメントに対する 2 件のアクセス呼び出しを使用して、それぞれの書き込みを検証します。この場合、各書き込みオペレーションがアクセス呼び出し制限数 10 のうちの 2 つを使用するため、一括書き込みリクエストはアクセス呼び出し制限数 20 のうちの 6 つを使用することになります。

    いずれかの制限を超えると、アクセス拒否のエラーが発生します。

    一部のドキュメントに対するアクセス呼び出しはキャッシュされる場合があります。キャッシュされた呼び出しは制限数に計上されません。

    関数の呼び出しの深さの最大数 20
    関数の再帰的な呼び出し、または循環的な呼び出しの最大数 0(許可されていません)
    リクエストあたりの式評価の最大数 1,000
    ルールセットの最大サイズ 64 KB

    費用を管理する

    想定外の請求を回避するには、費用制限とアラートを設定します。

    1 日あたりの費用制限を設定する

    Cloud Firestore の使用量の上限を設定するには、Google App Engine を使用して 1 日あたりの費用制限を設定します。App Engine では、Cloud Firestore などの App Engine 関連のリソースに、1 日あたりの費用制限を設定できます。App Engine での制限は、他の Firebase プロダクトには適用されません。

    1. Cloud Platform Console でプロジェクトの課金を有効にします(まだ有効にしていない場合)。
    2. Cloud Platform Console で App Engine アプリケーションの設定ページに移動します。
    3. [編集] をクリックし、1 日の使用量に制限を設定します。
    4. [保存] をクリックします。新しい制限はすぐに有効になり、毎日リセットされます。

    1 か月の予算を設定する

    Cloud Firestore のコストを追跡するには、Cloud Platform Console で 1 か月の予算を作成します。予算によって使用量が制限されることはありませんが、その月の計画コストに近づいた場合や超えた場合に通知するアラートを設定できます。

    予算を設定するには、Cloud Platform Console の [お支払い] セクションに移動し、請求先アカウントの予算を作成します。デフォルトのアラート設定を使用するか、1 か月の予算の割合ごとに通知を送信するようにアラートを変更することができます。

    詳細については、Cloud Platform Console での予算の設定をご覧ください。