配額與限制

本頁面說明 Firestore 的要求配額與限制。

免費配額

Firestore 提供免費配額,您無須付費即可開始使用這項服務。下表列出這個服務提供的各項免費配額。如果需要更多配額,請為專案啟用計費功能 Google Cloud

您每天可使用的配額有一定的限制,系統會在太平洋時間凌晨 12 點左右重設配額。

每項專案只能有一個免費的 Firestore 資料庫。

免費方案 配額
儲存的資料量 1 GiB
文件讀取次數 每天 50,000 次
文件寫入次數 每天 20,000 次
文件刪除次數 每天 20,000 次
傳出資料移轉 每月 10 GiB

下列作業和功能不含免費用量。 如要使用下列功能,請務必啟用計費功能:

  • 存留時間刪除
  • PITR 資料
  • 備份資料
  • 復原作業

如要進一步瞭解這些功能的計費方式,請參閱儲存空間定價

標準限制

下表列出與使用 Firestore 相關的各項限制。除非另有註明,否則這些都是硬性限制。

資料庫

限制 詳細資料
每個專案的資料庫數量上限

100

如要提高這項上限,請與支援團隊聯絡

集合、文件和欄位

限制 說明
集合 ID 限制
  • 必須使用有效的 UTF-8 字元
  • 長度不得超過 1,500 個位元組
  • 不得包含正斜線 (/)
  • 不得僅包含一個半形句號 (.) 或連續兩個半形句號 (..)
  • 不得與以下規則運算式相符:__.*__
子集合深度上限 100
文件 ID 限制
  • 必須使用有效的 UTF-8 字元
  • 長度不得超過 1,500 個位元組
  • 不得包含正斜線 (/)
  • 不得僅包含一個半形句號 (.) 或連續兩個半形句號 (..)
  • 不得與以下規則運算式相符:__.*__
  • 如果將 Datastore 實體匯入到 Firestore 資料庫中,數字實體 ID 會以 __id[0-9]+__ 的形式顯示
檔案名稱大小上限 6 KiB
檔案大小上限 1 MiB (1,048,576 個位元組)
欄位名稱限制
  • 必須使用有效的 UTF-8 字元
  • 不得與以下規則運算式相符:__.*__
欄位名稱大小上限 1,500 個位元組
欄位路徑限制
  • 必須以一個半形句號 (.) 分隔欄位名稱
  • 可以傳遞以點分隔 (.) 的區隔字串,其中每個區隔都是簡單的欄位名稱或加上引號的欄位名稱 (定義如下)。
如果欄位名稱符合以下所有條件,即為簡單的名稱:
  • 僅含 a-zA-Z0-9 等字元和底線 (_)
  • 開頭不是 0-9
加上引號的欄位名稱開頭和結尾都是反引號字元 (`)。舉例來說,foo.`x&y` 是指巢狀結構位於 foo 欄位下方的 x&y 欄位。如要使用反引號字元建構欄位名稱,請使用反斜線字元 (\) 逸出反引號字元。為方便起見,您可以將欄位路徑做為 FieldPath 物件傳遞,避免使用加上引號的欄位名稱 (例如,請參閱 JavaScript FieldPath)。
欄位路徑大小上限 1,500 個位元組
欄位值大小上限 1 MiB 減去 89 個位元組 (1,048,487 個位元組)
對應關係或陣列中欄位的深度上限

20

對應關係和陣列欄位會為物件的整體深度新增一個層級。舉例來說,下列物件的總深度為三層:


{
  nested_map: {         #depth 1
    nested_array: [     #depth 2
      {
        foo: "bar"      #depth 3
      }
    ]
  }
}
      

寫入作業和交易

除了這些限制,您也應參閱大規模設計的最佳做法

限制 說明
API 請求大小上限 10 MiB
交易時間限制 270 秒,閒置到期時間為 60 秒
可在一項 Commit 作業或交易中對一個文件執行的欄位轉換工作數量上限 500

索引

下列限制適用於單一欄位索引複合式索引

本頁面說明 Firestore 的要求配額與限制。

限制 說明
資料庫的複合式索引數量上限
資料庫的單一欄位設定數量上限
  • 如果尚未為專案啟用計費功能,系統會傳回 200。 Google Cloud

    如需更多配額,請為專案啟用計費功能 Google Cloud

  • 啟用專案的計費功能後,您會獲得 1,000 點數。 Google Cloud

一個欄位層級設定可包含相同欄位的多項設定。舉例來說,如果同一欄位同時有單一欄位索引豁免設定和存留時間政策,則會計入上限,視為一項欄位設定。

每個文件的索引項目數量上限

40,000 個

索引項目數量是文件中下列兩種項目的總和:

  • 單一欄位索引項目的數量
  • 複合式索引項目的數量

如要瞭解 Firestore 如何將文件和一組索引轉換為索引項目,請參閱這個索引項目計數範例

複合式索引的欄位數量上限 100
索引項目大小上限

7.5 KiB

如要瞭解 Firestore 計算索引項目大小的方式,請參閱索引項目大小一節。

文件的索引項目大小總和上限

8 MiB

大小總計是文件中下列兩種項目的總和:

  • 文件的單一欄位索引項目大小總和
  • 文件的複合式索引項目大小總和
  • 已建立索引的欄位值大小上限

    1500 個位元組

    超過 1500 個位元組的欄位值會遭到截斷。如果查詢中有欄位值遭截斷,系統可能會傳回不一致的結果。

    存留時間 (TTL)

    限制 詳細資料
    資料庫的單一欄位設定數量上限
    • 如果尚未為專案啟用計費功能,系統會傳回 200。 Google Cloud

      如需更多配額,請為專案啟用計費功能 Google Cloud

    • 啟用專案的計費功能後,您會獲得 1,000 點數。 Google Cloud

    一個欄位層級設定可包含相同欄位的多項設定。舉例來說,如果同一欄位同時有單一欄位索引豁免設定和存留時間政策,則會計入上限,視為一項欄位設定。

    匯出/匯入

    以下限制適用於代管匯入及匯出作業

    限制 說明
    專案每分鐘允許的匯出與匯入要求總數上限 20
    並行匯出與匯入作業的數量上限 50
    匯出與匯入要求的集合 ID 篩選器數量上限 100

    安全性規則

    限制 說明
    每項要求的 exists()get()getAfter() 呼叫數量上限
    • 單一文件要求和查詢要求的上限為 10 項。
    • 多文件讀取作業、交易和批次寫入作業的上限為 20 項。上述限制 (10 項呼叫) 同樣適用於各項作業。

      舉例來說,假設您建立的批次寫入要求含有 3 項寫入作業,而您的安全性規則會使用 2 項文件存取呼叫來驗證各項寫入作業。此時,各項寫入作業會使用 2 項存取呼叫 (上限為 10 項),批次寫入要求則會使用 6 項存取呼叫 (上限為 20 項)。

    超過任一項限制都會引發權限遭拒的錯誤。

    系統可能會快取部分的文件存取呼叫,已快取的呼叫不會計入限制中。

    巢狀 match 陳述式深度上限 10
    一組巢狀 match 陳述式中允許的路徑長度上限 (以路徑區段為單位) 100
    一組巢狀 match 陳述式中允許的路徑擷取變數數量上限 20
    函式呼叫深度上限 20
    函式引數數量上限 7
    每個函式的 let 變數繫結上限 10
    遞迴或循環函式呼叫的數量上限 0 (不允許)
    每個要求中經評估的運算式數量上限 1,000 個
    規則集的大小上限 規則集必須遵守下列兩項大小限制:
    • 如果使用 firebase deploy 從 Firebase 控制台或 CLI 發布規則集文字來源,大小限制為 256 KB。
    • Firebase 處理來源並在後端加以啟用時,所產生之已編譯規則集的大小限制為 250 KB。

    監控用量

    您可以在「Cloud Firestore API 配額」和「App Engine 配額」頁面中查看 Firestore 用量。