選擇資料庫:Cloud Firestore 或即時資料庫

Firebase 提供兩個雲端式文件資料庫,可供客戶存取。三 建議新客戶開始使用 Cloud Firestore:

  • Cloud Firestore建議的企業級 JSON 相容功能 文件資料庫,深受超過 250,000 名開發人員信賴。適合 含有豐富資料模型的應用程式,具有可查詢性、擴充性,以及 與高可用性也具備低延遲的用戶端同步處理與離線功能 資料存取權

  • 「即時資料庫」是傳統版 Firebase JSON 資料庫。適合 具有簡單資料模型的應用程式,需要簡單的查詢且低延遲 擴充性有限

還有哪些需要考量的重要事項?

回顧前述的重要考量後,由於您可以準備 選擇資料庫。 如果您仍然在衡量優缺點 Cloud Firestore 和即時資料庫之間的差異

資料模型

即時資料庫和 Cloud Firestore 都是 NoSQL 資料庫。

優先使用 Cloud Firestore 即時資料庫
將資料儲存為文件集合。
  • 簡單的資料輕而易舉,儲存在文件中,這一點和 JSON 非常類似。
  • 使用 子集合中的子集合。
  • 需要較少去標準化和資料簡化資料。

如想進一步瞭解來電目錄、轉接和錄音服務政策, Cloud Firestore 資料模型

以單一大型 JSON 樹狀結構儲存資料。
  • 簡單的資料很容易儲存
  • 大規模整理複雜的階層資料並不容易。

如想進一步瞭解來電目錄、轉接和錄音服務政策, 即時資料庫資料模型

即時與離線支援

兩者都有行動優先的即時 SDK,並且都支援本機資料儲存 。

優先使用 Cloud Firestore 即時資料庫
為 Apple、Android 和網路用戶端提供離線支援。 Apple 和 Android 用戶端的離線支援。

Presence

瞭解客戶何時在線上或離線會很有幫助。Firebase 即時資料庫可記錄用戶端連線狀態並提供更新資訊 每次用戶端的連線狀態變更時。

優先使用 Cloud Firestore 即時資料庫
原生不支援。建構應用程式 以監控 Cloud Firestore 和即時資料庫 Cloud Functions 請參閱版本 在 Cloud Firestore 中運作 支援在家狀態。

查詢

透過查詢從任一資料庫擷取、排序及篩選資料。

優先使用 Cloud Firestore 即時資料庫
含複合值的已建立索引查詢 排序及篩選
  • 您可以在 一項查詢
  • 查詢較為淺顯:只會傳回特定集合中的文件 否則不要傳回子集合資料。
  • 查詢必須一律傳回完整文件。
  • 查詢預設會建立索引:查詢效能會與 結果集的大小,而非資料集的大小。
受限的深層查詢 排序與篩選功能
  • 查詢可以排序「或」篩選屬性,但不能同時對兩者進行排序。
  • 查詢預設為深層,一律會傳回整個子樹狀結構。
  • 查詢能按任何精細程度存取資料,精細程度可達 JSON 樹狀結構中的個別分葉節點值。
  • 查詢不需要索引。然而,有些查詢 也會隨著資料集增加而降低速度

寫入作業和交易

優先使用 Cloud Firestore 即時資料庫
進階寫入和交易作業:
  • 寫入資料作業 設定和更新作業,以及如 陣列和數字運算子
  • 交易 能以不可分割的形式,從資料庫的任何部分讀取及寫入資料。
基本的寫入和交易作業。
  • 寫入資料 也會控制連線和更新作業
  • 交易 皆為特定資料子樹狀結構的原子序。

可靠性和效能

優先使用 Cloud Firestore 即時資料庫
Cloud Firestore 是能調度資源的區域與多區域解決方案 。
  • 低延遲解決方案,一般回應時間不得大於 30 毫秒。
  • 將資料分別存放在不同區域的多個資料中心,確保 全球擴充性和強大的可靠性
  • 適用於全球的區域或多區域設定。
進一步瞭解 Cloud Firestore 的效能和可靠性特性 。
即時資料庫是區域性解決方案。
  • 適用於區域設定。資料庫受限於可用區 提供資源
  • 延遲時間極短,一般回應時間不超過 10 毫秒。一個 是經常進行狀態同步處理的理想選項
進一步瞭解即時資料庫的效能和可靠性特性 。

運作時間

優先使用 Cloud Firestore 即時資料庫
極高運作時間效能。
  • 一般運作時間效能為 99.999%。
  • 如果可用性是最重要的考量因素 (例如電子商務應用程式), 請使用 Cloud Firestore
高效能運作效能。
  • 一般運作時間效能為 99.95%。

擴充性

優先使用 Cloud Firestore 即時資料庫
會自動調度資源。
  • 可完全自動擴充。資源調度限制約為 100 萬個並行連線和 10,000 次寫入。我們預計提高 這些限制
  • 針對個別文件或索引的寫入頻率設有限制
資源調度需要進行資料分割。
  • 擴充至大約 200,000 個並行連線,並以每秒 1,000 次寫入 單一資料庫資源規模超出此需求,需要在多個可用區中分割資料 多個資料庫
  • 個別資料的寫入頻率沒有當地限制。

安全性

優先使用 Cloud Firestore 即時資料庫
結合授權與驗證的非階層式規則。
  • 讀取及寫入受到以下保護的行動 SDK 保護: Cloud Firestore 安全性規則
  • 讀取及寫入受到以下保護的伺服器 SDK: Identity and Access Management (IAM)
  • 除非您使用萬用字元,否則規則不會循序漸進。
  • 規則可以限制查詢:如果查詢結果可能含有資料 使用者無法存取,整個查詢都會失敗。
分隔授權和驗證的連鎖規則語言。

定價

這兩種解決方案都可以在 Spark 和 Blaze 定價方案

優先使用 Cloud Firestore 即時資料庫
費用主要來自在資料庫中執行的作業 (讀取、寫入、刪除) 及降低頻率、頻寬和儲存空間。

Cloud Firestore 支援每天使用 支出上限 避免超過 App Engine 專案的成本 照自己的方式操作

進一步瞭解 Cloud Firestore 定價方案

僅須支付頻寬和儲存空間費用,但費用較高 頻率。

進一步瞭解即時資料庫定價方案

使用 Cloud Firestore 和即時資料庫

您可以在同一個 Firebase 應用程式或專案中使用這兩個資料庫。兩個 NoSQL 資料庫儲存相同類型的資料,而用戶端程式庫可在 如果您決定 ,在應用程式中同時使用這兩個資料庫

進一步瞭解即時資料庫中的可用功能 和 Cloud Firestore

準備好選擇資料庫了嗎?

希望以上比較能協助您瞭解 Firebase 資料庫解決方案。 現在我們有助您在 Firebase 專案中新增資料庫。