Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

使用量と上限

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

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

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

Google Cloud Console での使用量の詳細

Firebase プロジェクトを作成すると、Google Cloud プロジェクトも作成されます。Google Cloud 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 つのピリオド(..)のみで構成することはできません。
  • 次の正規表現とは照合できません: __.*__
  • Datastore エンティティを Firestore データベースにインポートする場合は、数値のエンティティ ID は __id[0-9]+__ として公開されます
ドキュメント名の最大サイズ 6 KiB
ドキュメントの最大サイズ 1 MiB(1,048,576 バイト)
フィールド名の制約 有効な UTF-8 文字でなければなりません。
フィールド名の最大サイズ 1,500 バイト
フィールドパスの制約
  • フィールド名を 1 つのピリオド(.)で区切る必要があります。
  • パス内のすべてのフィールド名がシンプルなものであれば、文字列として渡します。それ以外の場合は、FieldPath オブジェクト(JavaScript FieldPath など)として渡す必要があります。
次のすべてに当てはまる場合、フィールド名はシンプルと見なされます。
  • 文字 a-zA-Z0-9、アンダースコア(_)だけが含まれている
  • 0-9 で始まらない
フィールドパスの最大サイズ 1,500 バイト
フィールド値の最大サイズ 1 MiB - 89 バイト(1,048,487 バイト)
マップまたは配列内のフィールドの最大深度 20

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

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

ソフトリミット

Cloud Firestore でこれらのしきい値の超過が禁止されることはありませんが、超過するとパフォーマンスに影響します。

ソフトリミット 詳細
ドキュメントへの最大継続書き込み速度

1 秒あたり 1

1 秒あたり 1 回を超える書き込み速度が持続すると、レイテンシが増加し、競合エラーの原因になります。これはハードリミットではなく、短時間のバーストでは上限を超えても構いません。

コレクションへの最大書き込み速度(コレクションに含まれているドキュメントのインデックス付きフィールドには順次値が含まれている) 1 秒あたり 500

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

ソフトリミット 詳細
データベースあたりのモバイル / ウェブ クライアントの最大同時接続数

1,000,000

Cloud Firestore でこのしきい値の超過が禁止されることはありませんが、超過するとレイテンシとエラー率に大きく影響します。

インデックス

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

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

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

40,000

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

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

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

インデックス エントリの最大サイズ

7.5 KiB

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

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

8 MiB

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

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

    1,500 バイト

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

    エクスポート / インポート

    マネージド型のインポートおよびエクスポート オペレーションには次の上限が適用されます。

    上限 詳細
    プロジェクトの 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 コンソールまたは CLI から firebase deploy を使用して公開されるルールセット テキストソースのサイズは 256 KB に制限されています。
    • Firebase がソースを処理してバックエンドでアクティブにするときに生成される、コンパイル済みルールセットのサイズは 250 KB に制限されています。

    費用を管理する

    想定外の請求を回避するには、1 か月の予算とアラートを設定します。

    1 か月の予算を設定する

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

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

    予算と予算アラートの設定をご覧ください。

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

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