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

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

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

  • Realtime Database 是傳統版 Firebase JSON 資料庫。這類應用程式適合使用簡單資料模型,需要簡單查詢和低延遲同步處理,且擴充性有限。

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

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

資料模型

Realtime DatabaseCloud Firestore 都是 NoSQL 資料庫。

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

進一步瞭解 Cloud Firestore 資料模型

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

進一步瞭解 Realtime Database 資料模型

即時與離線支援

兩者皆有行動優先、即時 SDK,且都支援離線應用程式的本機資料儲存空間。

Cloud Firestore 建議採用 Realtime Database
為 Apple、Android 和網路用戶端提供離線支援。 Apple 和 Android 用戶端的離線支援。

Presence

瞭解客戶何時上線或離線,可能會很有幫助。Firebase 「Realtime Database」可以記錄用戶端連線狀態並提供更新資訊 每次用戶端的連線狀態變更時。

Cloud Firestore 建議採用 Realtime Database
原生不支援。您可以在 Realtime Database 的 支援使用狀態,將 Cloud FirestoreRealtime Database 同步處理至 Cloud Functions 請參閱版本 「Cloud Firestore」的身分。 支援在家狀態。

查詢

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

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

寫入作業和交易

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

可靠性和效能

Cloud Firestore 首選 Realtime Database
Cloud Firestore 是可以調度資源的區域和多區域解決方案
  • 低延遲解決方案,一般回應時間不得大於 30 毫秒。
  • 將資料分別存放在不同區域的多個資料中心,確保 全球擴充性和強大的可靠性
  • 適用於全球的區域或多區域設定。
,瞭解如何調查及移除這項存取權。 進一步瞭解「Cloud Firestore」的效能和可靠性特性 。服務水準協議
Realtime Database」是區域性解決方案,
  • 適用於區域設定。資料庫受限於可用區 提供資源
  • 延遲時間極短,一般回應時間不超過 10 毫秒。一個 是經常進行狀態同步處理的理想選項
,瞭解如何調查及移除這項存取權。 進一步瞭解「Realtime Database」的效能和可靠性特性 。服務水準協議

運作時間

Cloud Firestore 首選 Realtime Database
極高運作時間效能。
  • 一般運作時間效能為 99.999%。
  • 如果可用性是最重要的考量因素 (例如在電子商務應用程式中),請使用 Cloud Firestore
高效能運作效能。
  • 一般運作時間表現為 99.95%。

擴充性

Cloud Firestore 首選 Realtime Database
會自動調度資源。
  • 可完全自動擴充。資源調度限制約為 100 萬個並行連線和 10,000 次寫入。我們預計日後會提高這些限制。
  • 針對個別文件或索引的寫入頻率設有限制
資源調度需要進行資料分割。
  • 擴充至大約 200,000 個並行連線,並以每秒 1,000 次寫入 單一資料庫如要超出這個範圍,就必須在多個資料庫中分割資料。
  • 寫入個別資料的速率沒有本地限制。

安全性

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

定價

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

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

Cloud Firestore每日支援 支出上限 App Engine 項專案,確保不超出 照自己的方式操作

進一步瞭解 Cloud Firestore定價方案

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

進一步瞭解 Realtime Database 定價方案

使用 Cloud FirestoreRealtime Database

您可以在同一個 Firebase 應用程式或專案中使用這兩種資料庫。兩個 NoSQL 資料庫儲存相同類型的資料,而用戶端程式庫可在 如果您決定在應用程式中使用這兩種資料庫,請留意先前所述的差異。

進一步瞭解這兩個 Realtime Database 提供的功能 和 Cloud Firestore

準備好選擇資料庫了嗎?

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