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

使用法と制限

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

このガイドを使用して、Cloud Firestore の制限を理解してください。Cloud Firestore の料金については、 Cloud Firestore の料金に関する完全かつ詳細な説明 (注意事項を含む) を参照してください。

使用状況を監視する

Cloud Firestore の使用状況を監視するには、Firebase コンソールで [Cloud Firestore の使用状況] タブを開きます。ダッシュボードを使用して、さまざまな期間の使用状況を測定します。

Google Cloud Console での詳細な使用方法

Firebase プロジェクトを作成すると、Google Cloud プロジェクトも作成されます。 Google Cloud Console のCloud Firestore APIの割り当てページとApp Engine の割り当てページでは、Cloud Firestore の使用状況と割り当て情報を追跡します。

無料割り当て

Cloud Firestore は、無料で開始できる無料の割り当てを提供します。無料割り当て量は以下のとおりです。さらに割り当てが必要な場合は、Cloud Platform プロジェクトの課金を有効にする必要があります。

クォータは毎日適用され、太平洋時間の午前 0 時にリセットされます。

無料利用枠クォータ
保存データ1 GiB
ドキュメント読み取り1 日あたり 50,000
ドキュメント書き込み1 日あたり 20,000
ドキュメントの削除1 日あたり 20,000
ネットワーク下り1 か月あたり 10 GiB

標準制限

次の表は、Cloud Firestore に適用される制限を示しています。特に明記されていない限り、これらはハード リミットです。

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

リミット詳細
コレクション ID の制約
  • 有効な UTF-8 文字でなければなりません
  • 1,500 バイト以下にする必要があります
  • スラッシュ ( / ) を含めることはできません
  • 1 つのピリオド ( . ) または 2 つのピリオド ( .. ) だけで構成することはできません
  • 正規表現__.*__と一致しません
サブコレクションの最大深度100
ドキュメント ID の制約
  • 有効な UTF-8 文字でなければなりません
  • 1,500 バイト以下にする必要があります
  • スラッシュ ( / ) を含めることはできません
  • 1 つのピリオド ( . ) または 2 つのピリオド ( .. ) だけで構成することはできません
  • 正規表現__.*__と一致しません
  • Datastore エンティティを Firestore データベースにインポートすると、数値エンティティ ID が__id[0-9]+__として公開されます
ドキュメント名の最大サイズ6KiB
ドキュメントの最大サイズ1 MiB (1,048,576 バイト)
フィールド名の制約有効な UTF-8 文字でなければなりません
フィールド名の最大サイズ1,500バイト
フィールド パスの制約
  • フィールド名は単一のピリオド ( . ) で区切る必要があります
  • パス内のすべてのフィールド名が単純な場合は文字列として渡すことができます。それ以外の場合は、FieldPath オブジェクト (例: JavaScript FieldPath ) として渡す必要があります。
単純なフィールド名は、次のすべてに該当する名前です。
  • 文字azAZ0-9 、およびアンダースコア ( _ ) のみを含む
  • 0-9で始まらない
フィールド パスの最大サイズ1,500バイト
フィールド値の最大サイズ1 MiB - 89 バイト (1,048,487 バイト)
マップまたは配列内の被写界深度の最大値20

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

リミット詳細
API リクエストの最大サイズ10MiB
Commit操作に渡すか、トランザクションで実行できる書き込みの最大数500
Commit操作またはトランザクションで 1 つのドキュメントに対して実行できるフィールド変換の最大数500
取引の制限時間270 秒、60 秒のアイドル有効期限付き

ソフトリミット

Cloud Firestore は、以下のしきい値を超えないようにすることはできませんが、パフォーマンスに影響します。

ソフトリミット詳細
ドキュメントのインデックス付きフィールドに連続した値が含まれるコレクションへの最大書き込み速度500/秒

インデックス

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

リミット詳細
データベースの複合インデックスの最大数200
データベースの単一フィールド構成の最大数

200

合計 200 のフィールド レベルの構成が許可されます。 1 つのフィールド構成に、同じフィールドの複数の構成を含めることができます。たとえば、単一フィールドのインデックス作成免除と同じフィールドの TTL ポリシーは、制限に対して 1 つのフィールド構成としてカウントされます。

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

40,000

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

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

Cloud Firestore がドキュメントと一連のインデックスをインデックス エントリに変換する方法については、こちらのインデックス エントリ数の例をご覧ください。

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

7.5KiB

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

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

8 MiB

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

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

    1500バイト

    1500 バイトを超えるフィールド値は切り捨てられます。切り捨てられたフィールド値を含むクエリは、一貫性のない結果を返す場合があります。

    有効期限 (TTL)

    リミット詳細
    データベースの単一フィールド構成の最大数

    200

    合計 200 のフィールド レベルの構成が許可されます。 1 つのフィールド構成に、同じフィールドの複数の構成を含めることができます。たとえば、単一フィールドのインデックス作成免除と同じフィールドの TTL ポリシーは、制限に対して 1 つのフィールド構成としてカウントされます。

    輸出入

    管理されたインポートおよびエクスポート操作には、次の制限が適用されます。

    リミット詳細
    1 分あたりに許可される、プロジェクトのエクスポート リクエストとインポート リクエストの両方の最大合計数20
    同時エクスポートおよびインポートの最大数50
    エクスポートおよびインポート リクエストのコレクション ID フィルタの最大数100

    セキュリティ ルール

    リミット詳細
    リクエストあたりのexists()get() 、およびgetAfter()呼び出しの最大数
    • 単一ドキュメント リクエストとクエリ リクエストの場合は 10。
    • 複数ドキュメントの読み取り、トランザクション、およびバッチ書き込みの場合は 20。以前の制限である 10 も、各操作に適用されます。

      たとえば、3 つの書き込み操作を含むバッチ書き込み要求を作成し、セキュリティ ルールで 2 つのドキュメント アクセス呼び出しを使用して各書き込みを検証するとします。この場合、各書き込みは 10 回のアクセス呼び出しのうち 2 回を使用し、バッチ化された書き込み要求は 20 回のアクセス呼び出しのうち 6 回を使用します。

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

    一部のドキュメント アクセス呼び出しはキャッシュされる可能性があり、キャッシュされた呼び出しは制限に対してカウントされません。

    ネストされたmatchステートメントの最大深さ10
    ネストされたmatchステートメントのセット内で許可される、パス セグメント内の最大パス長100
    ネストされたmatchステートメントのセット内で許可されるパス キャプチャ変数の最大数20
    関数呼び出しの最大深度20
    関数の引数の最大数7
    関数あたりのlet変数バインディングの最大数10
    再帰的または循環的な関数呼び出しの最大数0 (許可されていません)
    リクエストごとに評価される式の最大数1,000
    ルールセットの最大サイズルールセットは、次の 2 つのサイズ制限に従う必要があります。
    • Firebase コンソールまたはfirebase deployを使用して CLI から発行されるルールセット テキスト ソースのサイズに対する 256 KB の制限。
    • Firebase がソースを処理し、バックエンドでアクティブにしたときに生じる、コンパイル済みルールセットのサイズに対する 250 KB の制限。

    支出を管理する

    請求書に予期しない請求が発生しないようにするには、毎月の予算とアラートを設定します。

    1 か月の予算を設定する

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

    予算を設定するには、Google Cloud Console の [請求]セクションに移動し、Cloud 請求先アカウントの予算を作成します。デフォルトのアラート設定を使用するか、アラートを変更して、毎月の予算のさまざまな割合で通知を送信できます。

    予算と予算アラートの設定の詳細については、こちらをご覧ください。

    1 日の使用制限を設定する

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