割り当てと上限
このページでは、Firestore のリクエストの割り当てと上限について説明します。
無料の割り当て
Firestore では、(default)
データベースを無料で使い始めることができるように、無料の割り当てが用意されています。 無料の割り当ての容量は以下のとおりです。
割り当てがさらに必要な場合は、Google Cloud プロジェクトに対する課金を有効にする必要があります。
割り当ては日単位で適用され、太平洋時間の午前 0 時頃にリセットされます。
無料割り当ての対象となるのは (default)
データベースのみです。
無料枠 | 割り当て |
---|---|
保存データ | 1 GiB |
ドキュメントの読み取り | 50,000/日 |
ドキュメントの書き込み | 20,000/日 |
ドキュメントの削除 | 20,000/日 |
送信データ転送 | 10 GiB/月 |
次のオペレーションと機能には、無料の使用量は含まれていません。次の機能を使用するには、課金を有効にする必要があります。
- 名前付き(デフォルト以外の)データベースの使用
- TTL の削除
- PITR データ
- データのバックアップ
- 復元オペレーション
これらの機能に対する課金の詳細については、ストレージ料金をご覧ください。
標準的な制限
次の表は Firestore に適用される制限を示しています。特に断りのない限り、これらはハードリミットです。
データベース
上限 | 詳細 |
---|---|
プロジェクトあたりのデータベースの最大数 |
100 この上限の引き上げをリクエストするには、サポートにお問い合わせください。 |
コレクション、ドキュメント、フィールド
上限 | 詳細 |
---|---|
コレクション ID の制約 |
|
サブコレクションの最大深度 | 100 |
ドキュメント ID に関する制約 |
|
ドキュメント名の最大サイズ | 6 KiB |
ドキュメントの最大サイズ | 1 MiB(1,048,576 バイト) |
フィールド名の制約 | 有効な UTF-8 文字でなければなりません。 |
フィールド名の最大サイズ | 1,500 バイト |
フィールドパスの制約 |
` )で始まり、バッククォート文字で終わります。たとえば、foo.`x&y` は foo フィールドの下にネストされた x&y フィールドを表します。バッククォート文字を含むフィールド名を作成するには、バックスラッシュ文字(\ )でバッククォート文字をエスケープします。便宜上、フィールド パスを FieldPath オブジェクトとして渡すことで、引用符で囲まれたフィールド名の使用を回避できます(例については、JavaScript FieldPath をご覧ください)。 |
フィールドパスの最大サイズ | 1,500 バイト |
フィールド値の最大サイズ | 1 MiB - 89 バイト(1,048,487 バイト) |
マップまたは配列内のフィールドの最大深度 | 20 |
書き込みとトランザクション
これらの制限に加え、スケーリングを考慮して設計する際のベスト プラクティスもご覧ください。
上限 | 詳細 |
---|---|
API リクエストの最大サイズ | 10 MiB |
トランザクションの時間制限 | 270 秒 + 60 秒のアイドル時間 |
インデックス
単一フィールド インデックスと複合インデックスには、以下の上限が適用されます。
このページでは、Firestore のリクエストの割り当てと上限について説明します。
上限 | 詳細 |
---|---|
データベース 1 つあたりの複合インデックスの最大数 |
|
データベース 1 つあたりの単一フィールド構成の最大数 |
1 つのフィールド レベルの構成に、同じフィールドの構成を複数含めることができます。たとえば、単一フィールド インデックス除外と、同じフィールドに対する TTL ポリシーは、上限に対して 1 つのフィールド構成としてカウントされます。 |
ドキュメントごとのインデックス エントリの最大数 |
40,000 インデックス エントリの数は、ドキュメントに関する次の数の合計です。
Firestore がドキュメントと一連のインデックスをインデックス エントリに変換する仕組みについては、このインデックス エントリ数の例をご覧ください。 |
複合インデックス内のフィールドの最大数 | 100 |
インデックス エントリの最大サイズ |
7.5 KiB 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 つのサイズ制限に従う必要があります。
|
使用量のモニタリング
Firestore の使用量は、Cloud Firestore API の割り当てページと App Engine の割り当てページで確認できます。