使用和限制

使用本指南了解 Cloud Firestore 限制,並參閱Cloud Firestore 定價以取得 Cloud Firestore 成本的完整詳細說明,包括需要注意的事項。

監控您的使用情況

若要監控 Cloud Firestore 使用量,請在 Firebase 控制台中開啟 Cloud Firestore使用量標籤。使用儀表板來衡量不同時間段的使用情況。

Google Cloud 控制台中的詳細使用方法

當您建立 Firebase 專案時,您同時也在建立一個 Google Cloud 專案。 Google Cloud 控制台中的Cloud Firestore API 配額App Engine 配額頁面會追蹤 Cloud Firestore 使用量和配額資訊。

免費額度

Cloud Firestore 提供免費配額,讓您可以免費開始使用(default)資料庫。下面列出了免費配額量。如果您需要更多配額,則必須為您的 Google Cloud 專案啟用結算功能

配額每天應用,並在太平洋時間午夜左右重置。

只有(default)資料庫才有資格獲得免費配額。

免費套餐配額
儲存數據1GiB
文件讀取每天 50,000
文件寫道每天 20,000
文件刪除每天 20,000
出站資料傳輸每月 10 GiB

以下操作和功能不包括免費使用。您必須啟用計費才能使用這些功能:

  • 命名(非預設)資料庫的使用
  • TTL 刪除
  • PITR數據
  • 備份數據
  • 恢復操作

有關如何計費這些功能的更多信息,請參閱存儲定價

標準限值

下表顯示了適用於 Cloud Firestore 的限制。除非另有說明,這些都是硬性限制。

資料庫

限制細節
每個項目的最大資料庫數量

100

您可以聯絡支援人員請求增加此限制。

集合、文件和字段

限制細節
集合 ID 的限制
  • 必須是有效的 UTF-8 字符
  • 不得超過 1,500 字節
  • 不能包含正斜線 ( / )
  • 不能只由單句點 ( . ) 或雙句點 ( .. ) 組成
  • 無法匹配正規表示式__.*__
子集合的最大深度100
文件 ID 的限制
  • 必須是有效的 UTF-8 字符
  • 不得超過 1,500 字節
  • 不能包含正斜線 ( / )
  • 不能只由單句點 ( . ) 或雙句點 ( .. ) 組成
  • 無法匹配正規表示式__.*__
  • 如果將 Datastore 實體匯入 Firestore 資料庫,數位實體 ID 將會公開為__id[0-9]+__
文件名稱的最大大小6 KB
文件的最大尺寸1 MiB(1,048,576 位元組)
欄位名稱的限制必須是有效的 UTF-8 字符
欄位名稱的最大大小1,500 字節
田野路徑的約束
  • 必須以單一句點 ( . ) 分隔欄位名稱
  • 可以作為點分隔 ( . ) 的段字串傳遞,其中每個段要么是簡單的字段名稱,要么是帶有引號的字段名稱(定義如下)。
簡單欄位名稱是滿足以下所有條件的欄位名稱:
  • 僅包含字元azAZ0-9和底線 ( _ )
  • 不以0-9開頭
引號的欄位名稱以反引號字元 ( ` ) 開頭和結尾。例如, foo.`x&y`指的是嵌套在foo字段下的x&y字段。若要使用反引號字元建構欄位名稱,請使用反斜線字元 ( \ ) 對反引號字元進行轉義。為方便起見,您可以透過將欄位路徑作為 FieldPath 物件傳遞來避免引用欄位名稱(例如,請參閱 JavaScript FieldPath )。
字段路徑的最大大小1,500 字節
欄位值的最大大小1 MiB - 89 位元組(1,048,487 位元組)
映射或數組中字段的最大深度20

寫入和事務

除了這些限制之外,您還應該了解規模設計的最佳實踐

限制細節
最大 API 請求大小10 兆位元組
交易時間限制270 秒,其中 60 秒空閒過期時間

索引

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

限制細節
資料庫最大複合索引數
資料庫單一欄位配置的最大數量

一個字段級配置可以包含同一字段的多個配置。例如,單一欄位索引豁免和同一欄位上的 TTL 策略將計為一個欄位配置,以達到限制。

每個文件的最大索引條目數

40,000

文件的索引條目數是以下各項的總和:

  • 單一欄位索引條目數
  • 複合索引條目數

若要了解 Cloud Firestore 如何將文件和一組索引轉換為索引條目,請參閱此索引條目計數範例

複合索引中的最大字段數100
索引條目的最大大小

7.5 KB

若要了解 Cloud Firestore 如何計算索引條目大小,請參閱索引條目大小

文件索引條目大小的最大總和

8 兆位元組

總大小是文件以下各項的總和:

  • 文件單欄位索引條目大小的總和
  • 文件的複合索引條目的大小總和
  • 索引欄位值的最大大小

    1500字節

    超過 1500 位元組的欄位值將被截斷。涉及截斷欄位值的查詢可能會傳回不一致的結果。

    生存時間 (TTL)

    限制細節
    資料庫單一欄位配置的最大數量

    一個字段級配置可以包含同一字段的多個配置。例如,單一欄位索引豁免和同一欄位上的 TTL 策略將計為一個欄位配置,以達到限制。

    出口進口

    以下限制適用於託管匯入和匯出操作

    限制細節
    項目每分鐘允許的最大匯出和匯入請求總數20
    並發導出和導入的最大數量50
    用於匯出和匯入請求的集合 ID 過濾器的最大數量100

    安全規則

    限制細節
    每個請求的exists()get()getAfter()呼叫的最大數量
    • 10 用於單一文檔請求和查詢請求。
    • 20 用於多文檔讀取、事務和批次寫入。之前的 10 個限制也適用於每個操作。

      例如,假設您建立一個包含 3 個寫入作業的批次寫入要求,而您的安全性規則使用 2 個文件存取呼叫來驗證每個寫入。在這種情況下,每個寫入使用其 10 個存取呼叫中的 2 個,而批次寫入請求使用其 20 個存取呼叫中的 6 個。

    超過任一限制都會導致權限被拒絕錯誤。

    某些文件存取呼叫可能會被緩存,且快取的呼叫不計入限制。

    最大嵌套match語句深度10
    一組嵌套match語句中允許的最大路徑長度(以路徑段為單位) 100
    一組嵌套match語句中允許的最大路徑捕獲變數數20
    最大函數呼叫深度20
    函數參數的最大數量7
    每個函數的let變數綁定的最大數量10
    遞歸或循環函數呼叫的最大次數0(不允許)
    每個請求計算的最大表達式數1,000
    規則集的最大大小規則集必須遵守兩個大小限制:
    • 從 Firebase 控制台或使用firebase deploy從 CLI 發布的規則集文字來源的大小限制為 256 KB。
    • 當 Firebase 處理來源並使其在後端處於活動狀態時,所產生的已編譯規則集的大小限制為 250 KB。

    管理支出

    為了幫助避免帳單上出現​​意外費用,請設定每月預算和警報。

    設定每月預算

    若要追蹤您的 Cloud Firestore 成本,請在 Google Cloud 控制台中建立每月預算。預算不會限制您的使用量,但您可以設定提醒,以便在您接近或超出當月計劃費用時通知您。

    若要設定預算,請前往 Google Cloud 控制台中的「結算」部分,然後為您的 Cloud Billing 帳號建立預算。您可以使用預設警報設定或修改警報以按每月預算的不同百分比發送通知。

    了解有關設定預算和預算警報的更多資訊。