儲存空間大小計算

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

如要瞭解這個儲存空間的費用,請參閱「Cloud Firestore 定價」。

字串大小

字串大小的計算方式為 UTF-8 編碼位元組數 + 1。

以下均以字串形式儲存:

  • 集合 ID
  • 字串文件 ID
  • 文件名稱
  • 欄位名稱
  • 字串欄位值

例如:

  • 集合 ID tasks 使用 5 個位元組 + 1 個位元組,總共 6 個位元組。
  • 欄位名稱 description 使用 11 個位元組 + 1 個位元組,總共 12 個位元組。

文件 ID 大小

文件 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 個位元組
地圖 對應的大小,計算方式與文件大小相同
空值 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"

如果複合式索引的集合範圍為 done 和 priority 欄位 (兩者皆為遞增),則這個索引中的項目總大小為 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"

如果複合式索引的集合群組範圍為 done 和 priority 欄位 (兩者皆為遞增),則該索引中的索引項目總大小為 85 個位元組:

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

文字搜尋索引項目大小

索引中文字搜尋索引項目的總大小,是下列各項的總和:

  • 集合名稱的字串大小
  • 文件 ID 值的大小
  • 已建立索引的欄位值位元組總和 (x2)
  • 一般中繼資料額外 48 個位元組

以下舉例說明 tasks 集合中文件 ID 為 my_task_id 的文件插入事件:

description 上的文字搜尋索引項目總大小為 105 位元組,計算方式如下:

  • 集合名稱 tasks 占 6 個位元組
  • 文件 ID 值:11 個位元組
  • 44 個位元組,根據 description 欄位的 22 個位元組 x2 計算
  • 一般中繼資料額外 48 個位元組

地理空間索引項目大小

索引中地理空間索引項目的總大小,是下列各項的總和:

  • 集合名稱的字串大小
  • 文件 ID 值的大小
  • 每個已建立索引的地理位置點 128 位元組
  • 一般中繼資料額外 48 個位元組

以下舉例說明 places 集合中文件 ID 為 my_place 的文件插入事件:

{
     "type": "Restaurant",
     "visited": false,
     "priority": 1,
     "location": GeoPoint(longitude, latitude)
}

location 上地理空間索引項目的總大小為 192 個位元組,計算方式如下:

  • 集合名稱 places 占 7 個位元組
  • 文件 ID 9 個位元組
  • location 欄位:128 個位元組
  • 一般中繼資料額外 48 個位元組

後續步驟

瞭解 Cloud Firestore 定價。