配額與限制

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

免費配額

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

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

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

標準限制

下表列出與使用 Firestore 相關的各項限制。

集合、文件和欄位

限制 說明
集合 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 個位元組
欄位路徑限制
  • 必須以一個半形句號 (.) 分隔欄位名稱
  • 如果路徑中的所有欄位都具有簡單的名稱,則能以字串的形式傳輸,否則就必須以 FieldPath 物件的形式傳輸 (例如 JavaScript FieldPath)
如果欄位名稱符合以下所有條件,即為簡單的名稱:
  • 僅含 a-zA-Z0-9 等字元和底線 (_)
  • 開頭不是 0-9
欄位路徑大小上限 1,500 個位元組
欄位值大小上限 1 MiB 減去 89 個位元組 (1,048,487 個位元組)
對應關係或陣列中欄位的深度上限 20

寫入作業和交易

限制 說明
API 請求大小上限 10 MiB
每個資料庫每秒寫入次數上限 10,000 次 (每秒最多 10 MiB)
文件的持續寫入頻率上限

每秒 1 次

如果持續寫入頻率高於每秒 1 次,延遲時間就會增加並導致爭用錯誤。不過,這項上限略有彈性,因此您可以短暫超出限制。

集合的寫入頻率上限 (文件中已建立索引的欄位含有序列值) 每秒 500 次
可傳送至 Commit 作業或可在交易中執行的寫入工作數量上限 500
可在一項 Commit 作業或交易中對一個文件執行的欄位轉換工作數量上限 500
交易時間限制 270 秒,閒置到期時間為 60 秒

即時更新

限制 說明
每個資料庫的行動/網路用戶端的並行連線數上限 1,000,000

索引

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

限制 說明
資料庫的複合式索引數量上限 200
資料庫的單一欄位索引豁免數量上限 200

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

40,000 個

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

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

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

索引項目大小上限

7.5 KiB

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

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

8 MiB

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

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

    1500 個位元組

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

    匯出/匯入

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

    限制 說明
    專案每分鐘允許的匯出與匯入要求總數上限 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 個
    規則集的大小上限 Verax 規則集必須遵守下列兩項大小限制:
    • 如果使用 firebase deploy 從 Firebase 主控台或 CLI 發布 Verax 規則集文字來源,大小限制為 256 KB。
    • Firebase 處理 Verax 來源並在後端加以啟用時,所產生之已編譯規則集的大小限制為 250 KB。

    監控用量

    您可以在 App Engine 的「配額」頁面中查看每日的 Firestore 用量:

    前往「配額」頁面