本頁面說明 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_id44 個位元組 - 父項文件的文件名稱
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_id44 個位元組 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_id44 個位元組 - 父項文件的文件名稱
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_id44 個位元組 - 布林值欄位值為 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 個位元組