コンソールへ移動

ストレージ サイズの計算

このページでは、Cloud Firestore のドキュメント、ドキュメント名、フィールド、およびインデックス エントリのストレージ サイズについて説明します。

Cloud Firestore の料金では、このストレージの費用について説明しています。

文字列のサイズ

文字列のサイズは、UTF-8 でエンコードされたバイト数 + 1 の値として計算されます。

以下は、文字列として保存されます。

  • コレクション ID
  • 文字列ドキュメント ID
  • ドキュメント名
  • フィールド名
  • 文字列フィールドの値

例:

  • コレクション ID tasks には、5 バイト + 1 バイト、合計 6 バイトが使用されます。
  • フィールド名 description には 11 バイト + 1 バイト、合計 12 バイトが使用されます。

ドキュメント ID のサイズ

ドキュメント ID のサイズは、文字列 ID の場合は文字列のサイズ、整数 ID の場合は 8 バイトです。

ドキュメント名のサイズ

ドキュメント名のサイズは、以下の値の合計です。

  • ドキュメントのパスにある各コレクション ID およびドキュメント ID のサイズ
  • 追加の 16 バイト

サブコレクション users/jeff/tasks にあり、文字列ドキュメント ID が my_task_id であるドキュメントの場合、ドキュメント名のサイズは 6 + 5 + 6 + 11 + 16 = 44 バイトです。

  • users コレクション ID に 6 バイト
  • jeff ドキュメント ID に 5 バイト
  • tasks コレクション ID に 6 バイト
  • my_task_id ドキュメント ID に 11 バイト
  • 追加の 16 バイト

フィールド値のサイズ

次の表に、フィールド値のサイズを型別に示します。

サイズ
配列 各値のサイズの合計
ブール値 1 バイト
バイト バイト長
日時 8 バイト
浮動小数点数 8 バイト
地理的座標 16 バイト
整数 8 バイト
地図 ドキュメントのサイズと同じ方法で計算されたマップのサイズ
Null 1 バイト
リファレンス ドキュメント名のサイズ
テキスト文字列 UTF-8 でエンコードされたバイト数 + 1

たとえば、done という名前のブール値フィールドは 6 バイトを使用します。

  • done フィールド名に 5 バイト
  • ブール値に 1 バイト

ドキュメントのサイズ

ドキュメントのサイズは以下の合計値となります。

次に、サブコレクション users/jeff/tasks にあり、文字列ドキュメント ID が my_task_id であるドキュメントの例を示します。

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

フィールドの合計サイズは 70 バイトです。

フィールド名と値 フィールドのサイズ(バイト)
"type": "Personal" 14
フィールド名 5 + フィールドの文字列値 9
"done": false 6
フィールド名 5 + フィールドのブール値 1
"priority": 1 17
フィールド名 9 + フィールドの整数値 8
"description": "Learn Cloud Firestore" 33
フィールド名 12 + フィールドの文字列値 21

この結果、ドキュメントのサイズは 44 + 70 + 32 = 146 バイトとなります。

  • ドキュメント名に 44 バイト
  • フィールドに 70 バイト
  • 追加の 32 バイト

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

単一フィールド インデックスと複合インデックスの場合、インデックス エントリのサイズは次のように計算されます。

単一フィールド インデックス エントリのサイズ

単一フィールド インデックス エントリのサイズは、以下の合計値となります。

たとえば、サブコレクション users/jeff/tasks にあり、文字列ドキュメント ID が my_task_id であるドキュメントを見てみましょう。

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

done がインデックス付きフィールドの場合、単一フィールド インデックス done の自動インデックス エントリのサイズは 109 バイトで、次のような構成になっています。

  • ドキュメント名 users/jeff/tasks/my_task_id に 44 バイト
  • 親ドキュメントのドキュメント名 users/jeff に 27 バイト
  • done フィールド名に 5 バイト
  • ブール値フィールドの値に 1 バイト
  • 追加の 32 バイト

デフォルトでは、Cloud Firestore は各ドキュメントの各フィールドに、2 つの単一フィールド インデックスを自動的に定義します。そのうち 1 つは昇順、もう 1 つは降順です。したがってこのドキュメントの場合、単一フィールド done の昇順用インデックスに 109 バイトのインデックス エントリ、単一フィールド done の降順用インデックスに 109 バイトのインデックス エントリが含まれています。

複合インデックス エントリのサイズ

複合インデックス エントリのサイズは、以下の合計値となります。

たとえば、サブコレクション users/jeff/tasks にあり、文字列ドキュメント ID が my_task_id であるドキュメントを見てみましょう。

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

done プロパティと priority プロパティ(どちらも昇順)を使用する複合インデックスについて考えてみます。このインデックスのインデックス エントリの合計サイズは 85 バイトです。

  • ドキュメント名 users/jeff/tasks/my_task_id に 44 バイト
  • ブール値フィールドの値に 1 バイト
  • 整数フィールド値に 8 バイト
  • 追加の 32 バイト

次のステップ

Cloud Firestore の料金について理解する。