儲存空間大小計算

本頁面說明 Firestore 中文件、文件名稱、欄位和索引項目的儲存空間大小。

您可以在 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 中的文件具有 my_task_id 字串文件 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
向量 每個維度 8 個位元組

舉例來說,名為 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 個額外位元組

索引項目大小

以下列舉單一欄位索引和複合式索引的索引項目大小計算方式。

單一欄位索引項目大小

單一欄位索引項目的大小取決於索引範圍是集合還是集合群組。

集合範圍

具有集合範圍的單一欄位索引項目大小是以下幾項的總和:

假設子集合 users/jeff/tasks 中有文件,且字串文件 ID 為 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 個額外位元組

集合群組範圍

設有集合群組範圍的單一欄位索引中,索引項目的大小是以下幾項的總和:

假設子集合 users/jeff/tasks 中有文件,且字串文件 ID 為 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 個位元組

複合式索引項目大小

複合式索引項目的大小取決於索引的範圍是集合還是集合群組。

集合範圍

集合範圍複合式索引的索引項目大小是以下幾項的總和:

假設子集合 users/jeff/tasks 中有文件,且字串文件 ID 為 my_task_id

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

如果集合範圍的複合式索引會將 donepriority 欄位 (皆為遞增) 編入索引,則此索引中的項目總大小為 112 個位元組:

  • 文件名稱 users/jeff/tasks/my_task_id 佔 44 個位元組
  • 父項文件的文件名稱 users/jeff 佔 27 個位元組
  • 布林值欄位值佔 1 個位元組
  • 整數字段值佔 8 個位元組
  • 32 個額外位元組

集合群組範圍

集合群組範圍的複合式索引中,索引項目的大小是以下幾項的總和:

假設子集合 users/jeff/tasks 中有文件,且字串文件 ID 為 my_task_id

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

如果複合式索引具有集合群組範圍,且會將 donepriority 欄位 (皆為遞增) 編入索引,則此索引中的索引項目總大小為 85 個位元組:

  • 文件名稱 users/jeff/tasks/my_task_id 佔 44 個位元組
  • 布林值欄位值佔 1 個位元組
  • 整數字段值佔 8 個位元組
  • 32 個額外位元組

後續步驟

瞭解 Firestore 定價