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

ストレージサイズの計算

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

このページでは、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 バイト

my_task_id の文字列ドキュメント ID を持つサブコレクションusers/jeff/tasks 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バイト
地図ドキュメント サイズと同じ方法で計算されたマップのサイズ
ヌル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"

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

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

したがって、ドキュメントのサイズは 44 + 71 + 32 = 147 バイトです。

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

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

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

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

単一フィールド インデックス エントリのサイズは、インデックスのスコープがコレクションまたはコレクション グループのどちらであるかによって異なります。

コレクションの範囲

コレクション スコープを持つ単一フィールド インデックスのエントリのサイズは、次の合計です。

my_task_id の文字列ドキュメント ID を持つサブコレクションusers/jeff/tasks my_task_idのドキュメントを考えてみましょう:

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

doneフィールドにインデックスを付けるコレクション スコープを持つ単一フィールド インデックスの場合、このインデックスのエントリの合計サイズは 109 バイトです。

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

コレクション グループのスコープ

コレクション グループ スコープの単一フィールド インデックスのエントリのサイズは、次の合計です。

my_task_id の文字列ドキュメント ID を持つサブコレクションusers/jeff/tasks my_task_idのドキュメントを考えてみましょう:

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

doneフィールドにインデックスを付けるコレクション グループ スコープを持つ単一フィールド インデックスの場合、このインデックス内のエントリの合計サイズは 98 バイトです。

  • ドキュメント名users/jeff/tasks/my_task_idの場合は 44 バイト
  • doneフィールド名の 5 バイト
  • ブール フィールド値の 1 バイト
  • 追加の 48 バイト

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

複合インデックス内のエントリのサイズは、インデックスのスコープがコレクションまたはコレクション グループのどちらであるかによって異なります。

コレクションの範囲

コレクション スコープを持つ複合インデックスのインデックス エントリのサイズは、次の合計です。

my_task_id の文字列ドキュメント ID を持つサブコレクションusers/jeff/tasks my_task_idのドキュメントを考えてみましょう:

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

doneフィールドとpriorityフィールド (両方とも昇順) にインデックスを付けるコレクション スコープを持つ複合インデックスの場合、このインデックス内のエントリの合計サイズは 112 バイトです。

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

コレクション グループのスコープ

コレクション グループ スコープを持つ複合インデックスのインデックス エントリのサイズは、次の合計です。

my_task_id の文字列ドキュメント ID を持つサブコレクションusers/jeff/tasks 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 の料金については、こちらをご覧ください。