このガイドでは Cloud Firestore の制限について説明します。注意点を含む Cloud Firestore の費用の詳細については、Cloud Firestore の料金をご覧ください。
使用量をモニタリングする
Cloud Firestore の使用量をモニタリングするには、Firebase コンソールで Cloud Firestore の [使用状況] タブを開きます。ダッシュボードを使用して、異なる期間の使用量を比較できます。
Google Cloud コンソールに表示される使用量の詳細
Firebase プロジェクトを作成すると、Google Cloud プロジェクトも作成されます。Google Cloud コンソールの Cloud Firestore API の割り当てページと App Engine の割り当てページでは、Cloud Firestore の使用量と割り当てに関する情報がトラッキングされます。
無料の割り当て
Cloud Firestore では、費用をかけずに (default)
データベースの使用を開始できるよう、無料の割り当てが用意されています。無料の割り当ての容量は以下のとおりです。
割り当てがさらに必要な場合は、Google Cloud プロジェクトに対する課金を有効にする必要があります。
割り当ては日単位で適用され、太平洋時間の午前 0 時頃にリセットされます。
無料割り当ての対象となるのは (default)
データベースのみです。
無料枠 | 割り当て |
---|---|
保存データ | 1 GiB |
ドキュメントの読み取り | 50,000/日 |
ドキュメントの書き込み | 20,000/日 |
ドキュメントの削除 | 20,000/日 |
送信データ転送 | 10 GiB/月 |
次のオペレーションと機能には、無料の使用量は含まれていません。次の機能を使用するには、課金を有効にする必要があります。
- 名前付き(デフォルト以外の)データベースの使用
- TTL の削除
- PITR データ
- データのバックアップ
- 復元オペレーション
これらの機能に対する課金の詳細については、ストレージ料金をご覧ください。
標準的な制限
次の表は Cloud Firestore に適用される制限を示しています。特に断りのない限り、これらはハードリミットです。
データベース
上限 | 詳細 |
---|---|
プロジェクトあたりのデータベースの最大数 |
100 この上限の引き上げをリクエストするには、サポートにお問い合わせください。 |
コレクション、ドキュメント、フィールド
上限 | 詳細 |
---|---|
コレクション ID の制約 |
|
サブコレクションの最大深度 | 100 |
ドキュメント ID に関する制約 |
|
ドキュメント名の最大サイズ | 6 KiB |
ドキュメントの最大サイズ | 1 MiB(1,048,576 バイト) |
フィールド名の制約 |
|
フィールド名の最大サイズ | 1,500 バイト |
フィールドパスの制約 |
` )で始まり、バッククォート文字で終了します。たとえば、foo.`x&y` は foo フィールドの下にネストされた x&y フィールドを表します。バッククォート文字を含むフィールド名を作成するには、バックスラッシュ文字(\ )でバッククォート文字をエスケープします。便宜上、フィールド パスを FieldPath オブジェクトとして渡すことで、引用符で囲まれたフィールド名の使用を回避できます(例については、JavaScript FieldPath をご覧ください)。 |
フィールドパスの最大サイズ | 1,500 バイト |
フィールド値の最大サイズ | 1 MiB - 89 バイト(1,048,487 バイト) |
マップまたは配列内のフィールドの最大深度 | 20 マップ フィールドと配列フィールドは、オブジェクトの全体的な深度を 1 レベル追加します。たとえば、次のオブジェクトの合計深度は 3 レベルです。
|
書き込みとトランザクション
これらの制限に加え、スケーリングを考慮して設計する際のベスト プラクティスもご覧ください。
上限 | 詳細 |
---|---|
API リクエストの最大サイズ | 10 MiB |
トランザクションの時間制限 | 270 秒 + 60 秒のアイドル時間 |
Commit オペレーションまたはトランザクションで 1 件のドキュメントで実行できるフィールド変換の最大数 |
500 |
インデックス
単一フィールド インデックスと複合インデックスには、以下の上限が適用されます。
上限 | 詳細 |
---|---|
データベース 1 つあたりの複合インデックスの最大数 |
|
データベース 1 つあたりの単一フィールド構成の最大数 |
1 つのフィールド レベルの構成に、同じフィールドの構成を複数含めることができます。たとえば、単一フィールド インデックス除外と、同じフィールドに対する TTL ポリシーは、上限に対して 1 つのフィールド構成としてカウントされます。 |
ドキュメントごとのインデックス エントリの最大数 |
40,000 インデックス エントリの数は、ドキュメントに関する次の数の合計です。
Cloud Firestore がドキュメントと一連のインデックスをインデックス エントリに変換する仕組みについては、このインデックス エントリ数の例をご覧ください。 |
複合インデックス内のフィールドの最大数 | 100 |
インデックス エントリの最大サイズ |
7.5 KiB Cloud Firestore でインデックス エントリのサイズを計算する方法については、インデックス エントリのサイズをご覧ください。 |
ドキュメントのインデックス エントリの最大合計サイズ |
8 MiB 合計サイズは、ドキュメントに関する次の数の合計です。 |
インデックス登録されるフィールド値の最大サイズ |
1,500 バイト 1,500 バイトを超えるフィールド値は切り捨てられます。切り捨てられたフィールド値が含まれるクエリからは、整合性のない結果が返されることがあります。 |
有効期間(TTL)
上限 | 詳細 |
---|---|
データベース 1 つあたりの単一フィールド構成の最大数 |
1 つのフィールド レベルの構成に、同じフィールドの構成を複数含めることができます。たとえば、単一フィールド インデックス除外と、同じフィールドに対する TTL ポリシーは、上限に対して 1 つのフィールド構成としてカウントされます。 |
エクスポート / インポート
マネージド型のインポートおよびエクスポート オペレーションには次の上限が適用されます。
上限 | 詳細 |
---|---|
プロジェクトの 1 分間に許可されるエクスポートおよびインポート リクエストの最大合計数 | 20 |
同時エクスポートおよびインポートの最大数 | 50 |
エクスポートおよびインポート リクエストのコレクション ID のフィルタの最大数 | 100 |
セキュリティ ルール
上限 | 詳細 |
---|---|
リクエストあたりの exists() 、get() 、getAfter() 呼び出しの最大数 |
いずれかの上限を超えると、アクセス拒否のエラーが発生します。 一部のドキュメントに対するアクセス呼び出しはキャッシュされる場合があります。キャッシュされた呼び出しは上限数に計上されません。 |
ネストされた match ステートメントの深さの最大数 |
10 |
ネストされた一連の match ステートメント内で許可されるパスセグメント内の最大パス長 |
100 |
ネストされた一連の match ステートメント内で許可されるパスキャプチャ変数の最大数 |
20 |
関数呼び出しの深さの最大数 | 20 |
関数引数の最大数 | 7 |
関数あたりの let 変数バインディングの最大数 |
10 |
関数の再帰的な呼び出し、または循環的な呼び出しの最大数 | 0(許可されていません) |
リクエストあたり評価される式の最大数 | 1,000 |
ルールセットの最大サイズ | ルールセットは、次の 2 つのサイズ上限に従う必要があります。
|
費用を管理する
想定外の請求を回避するには、1 か月の予算とアラートを設定します。
1 か月の予算を設定する
Cloud Firestore の費用をトラッキングするには、Google Cloud コンソールで 1 か月の予算を作成します。予算によって使用量が制限されることはありませんが、その月の計画コストに近づいた場合や超えた場合に通知するアラートを設定できます。
予算を設定するには、Google Cloud コンソールの [お支払い] セクションに移動し、Cloud Billing アカウントの予算を作成します。デフォルトのアラート設定を使用するか、1 か月の予算の割合ごとに通知を送信するようにアラートを変更できます。
予算と予算アラートの設定をご覧ください。