以下是 Firebase 實時數據庫中數據存儲和操作的限制。要超越任何這些限制,請使用多個數據庫。
全球的
手術 | 限制 | 描述 |
---|---|---|
同時連接 | 200,000* | 同時連接相當於一台移動設備、瀏覽器選項卡或連接到數據庫的服務器應用程序。 這與您的應用的用戶總數不同,因為您的用戶不會同時連接。例如,每月活躍用戶數為 1000 萬的應用程序的同時連接數通常少於 200,000 個。您的最大同時連接數取決於您的用戶總數以及用戶在您的應用中花費的平均時間。 但是,如果您需要擴展到超出此限制,請嘗試使用多個數據庫。 *Spark 計劃對同時連接的限制為 100。 |
從單個數據庫發送同時響應。 | ~100,000/秒 | 響應包括服務器在給定時間從單個數據庫發送的同時廣播和讀取操作。該限制是指代表每個單獨的讀取或廣播操作的數據包,包括從數據庫發送的推送通知。本指南適用於持續負載,但數據庫可以處理偶爾的更高突發。 |
單次寫入觸發的雲函數數量 | 1000;或者,對於 Cloud Functions v2,每個區域 500 個 | 雖然單個函數可以觸發的讀取或寫入操作數量沒有限制,但單個數據庫寫入操作只能觸發 1000 個函數,或者對於 Cloud Functions v2,每個區域只能觸發 500 個函數。 雲函數只能由寫入操作觸發,每個函數還可以觸發更多寫入操作,從而觸發更多函數(每個函數都有自己的 1000 個函數或每個區域 500 個函數的限制)。 |
寫入觸發的單個事件的大小 | 1MB | 事件的大小由以下值組成:
|
數據傳輸到雲功能 | 持續 10MB/秒 | 可以轉發到 Cloud Functions 的事件數據的速率。 |
數據樹
財產 | 限制 | 描述 |
---|---|---|
子節點最大深度 | 32 | 數據樹中的每個路徑的深度必須小於 32 層。 |
密鑰長度 | 768 字節 | 鍵採用 UTF-8 編碼,不能包含換行符或以下任何字符: 。 $ # [ ] / 或任何 ASCII 控製字符(0x00 - 0x1F 和 0x7F) |
字符串的最大大小 | 10MB | 數據採用 UTF-8 編碼。 |
讀
描述 | 限制 | 筆記 |
---|---|---|
數據庫提供的單個響應的大小 | 256MB | 每次讀取操作從單個位置的數據庫下載的數據大小應小於 256 MB。 要在更大的位置執行讀取操作,請嘗試以下選項之一: |
具有偵聽器或查詢的路徑中的總節點數 | 7500 萬* | 您無法偵聽或查詢累計節點數超過 7500 萬個的路徑。但是,您仍然可以偵聽或查詢子節點。嘗試更深入地鑽取路徑或為路徑的更具體部分創建單獨的偵聽器或查詢。 *您無法從 Firebase 控制台中的數據查看器查看節點總數超過 30,000 個的路徑。 |
單個查詢可以運行的時間長度 | 15分鐘* | 單個查詢最多可以運行 15 分鐘才會失敗。 *在 Firebase 控制台中執行的單個查詢最多只能運行 5 秒,然後就會失敗。 |
寫
描述 | 限制 | 筆記 |
---|---|---|
寫入速率 | 1,000 次寫入/秒 | 單個數據庫每秒寫入操作數的限制。雖然不是硬性限制,但如果您每秒維持超過 1,000 次寫入,則您的寫入活動可能會受到速率限制。 |
對數據庫的單個寫入請求的大小 | 來自 REST API 的 256 MB; SDK 中的 16 MB。 | 每次寫入操作的總數據量應小於256 MB。多路徑更新受到相同的大小限制。 |
寫入的字節數 | 64MB/分鐘 | 任何給定時間通過數據庫同時寫入操作寫入的總字節數。 |