以下是 Firebase Realtime Database 資料儲存庫和作業的限制。如要擴充至超過上述任一限制,請使用多個資料庫。
全球
| 作業 | 限制 | 說明 |
|---|---|---|
| 同時連線數 | 200,000* | 一個並行連線相當於一個連線至資料庫的行動裝置、瀏覽器分頁或伺服器應用程式。 這與應用程式的使用者總數不同,因為使用者不會同時連線。舉例來說,每月活躍使用者人數達 1,000 萬的應用程式,同時連線數通常少於 20 萬。同時連線數量上限取決於使用者總數,以及使用者在應用程式中花費的平均時間。 不過,如果需要擴充超過這項限制,請嘗試使用多個資料庫。 *Spark 方案的同時連線數量上限為 100。 |
| 從單一資料庫同時傳送的回應。 | ~100,000/秒 | 回應包括伺服器在特定時間從單一資料庫傳送的同步廣播和讀取作業。這項限制是指代表每個讀取或廣播作業 (包括推播通知) 的資料封包,從資料庫傳送。這項指引適用於持續負載,但資料庫可以處理偶爾較高的突發流量。 |
| 單次寫入觸發的 Cloud Functions 數量 | 1,000 個;如果是 Cloud Functions 第 2 版,則為每個區域 500 個 | 雖然單一函式可觸發的讀取或寫入作業數量沒有限制,但單一資料庫寫入作業只能觸發 1,000 個函式,或每個區域 500 個 Cloud Functions 第 2 版函式。 Cloud Functions 只能由寫入作業觸發,且每個函式也可以觸發更多寫入作業,進而觸發更多函式 (每個函式都有自己的 1000 個函式或每個區域 500 個函式的限制)。 |
| 寫入作業觸發的單一事件大小 | 1 MB | 事件大小由下列值組成:
|
| 資料移轉至Cloud Functions | 持續 10 MB/秒 | 可轉送至 Cloud Functions 的事件資料速率。 |
資料樹狀結構
| 屬性 | 限制 | 說明 |
|---|---|---|
| 子節點深度上限 | 32 | 資料樹狀結構中的每個路徑深度不得超過 32 層。 |
| 金鑰長度 | 768 個位元組 | 鍵採用 UTF-8 編碼,不得包含新行或下列任何字元: 。$ # [ ] / 或任何 ASCII 控制字元 (0x00 - 0x1F 和 0x7F) |
| 字串大小上限 | 10 MB | 資料採用 UTF-8 編碼。 |
讀取
| 說明 | 限制 | 附註 |
|---|---|---|
| 資料庫提供的單一回應大小 | 256 MB | 從單一位置的資料庫下載資料時,每次讀取作業的大小應小於 256 MB。 如要在較大的位置執行讀取作業,請嘗試下列其中一種做法: |
| 路徑中含有監聽器或查詢的節點總數 | 7,500 萬* | 您無法監聽或查詢節點總數超過 7,500 萬個的路徑。不過,您仍可監聽或查詢子節點。請嘗試深入探究路徑,或為路徑的特定部分建立個別監聽器或查詢。 *您無法在 Firebase 控制台的資料檢視器中,查看節點總數超過 30,000 個的路徑。 |
| 單一查詢可執行的時間長度 | 15 分鐘* | 單一查詢最多可執行 15 分鐘,超過就會失敗。 *在 Firebase 控制台中執行的單一查詢最多只能執行 5 秒,超過就會失敗。 |
寫入
| 說明 | 限制 | 附註 |
|---|---|---|
| 寫入速率 | 每秒 1,000 次寫入 | 單一資料庫每秒寫入作業數上限。雖然這不是硬性限制,但如果每秒持續寫入超過 1,000 次,寫入活動可能會受到頻率限制。 |
| 單一資料庫寫入要求的大小 | REST API 為 256 MB;SDK 為 16 MB。 | 每項寫入作業的總資料量應小於 256 MB。多路徑更新也受限於相同的大小限制。 |
| 寫入的位元組 | 每分鐘 64 MB | 在任何指定時間,透過資料庫上的同步寫入作業寫入的總位元組數。 |