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

Firebase 提供兩個基於雲端、用戶端可存取的文件資料庫。我們建議新客戶從 Cloud Firestore 開始:

  • Cloud Firestore推薦的企業級 JSON 相容文件資料庫,受到超過 25 萬名開發人員的信任。它適用於具有豐富資料模型、需要可查詢性、可擴展性和高可用性的應用程式。它還提供低延遲客戶端同步和離線資料存取。

  • 即時資料庫是經典的 Firebase JSON 資料庫。它適用於具有簡單資料模型、需要簡單查找和低延遲同步且可擴展性有限的應用程式。

還有哪些重要事項需要考慮?

考慮完前面的關鍵考慮因素後,您可能已經準備好選擇資料庫了。如果您仍在權衡優缺點,本部分將介紹 Cloud Firestore 和即時資料庫之間的其他差異。

資料模型

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

首選Cloud Firestore即時資料庫
將資料儲存為文檔集合。
  • 簡單的資料很容易儲存在文件中,這與 JSON 非常相似。
  • 使用文件中的子集合更容易大規模組織複雜的分層資料。
  • 需要較少的反規範化和資料扁平化。

詳細了解Cloud Firestore 資料模型

將資料儲存為一棵大型 JSON 樹。
  • 簡單的數據很容易儲存。
  • 複雜的分層資料更難大規模組織。

了解有關即時資料庫資料模型的更多資訊。

即時和離線支援

兩者都具有行動優先的即時 SDK,並且都支援離線就緒應用程式的本地資料儲存。

首選Cloud Firestore即時資料庫
對 Apple、Android 和 Web 用戶端的離線支援。離線支援蘋果和安卓客戶端。

在場

了解客戶端何時在線上或離線非常有用。 Firebase 即時資料庫可以記錄用戶端連線狀態,並在每次用戶端連線狀態變更時提供更新。

首選Cloud Firestore即時資料庫
原生不支援。您可以透過使用 Cloud Functions 同步 Cloud Firestore 和即時資料庫來建立即時資料庫對線上狀態的支持,請參閱在 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即時資料庫
結合授權和驗證的非級聯規則。
  • 從受Cloud Firestore 安全規則保護的行動 SDK 進行讀取和寫入。
  • 從受身分和存取管理 (IAM)保護的伺服器 SDK 進行讀取和寫入。
  • 除非使用通配符,否則規則不會級聯。
  • 規則可以限制查詢:如果查詢的結果可能包含使用者無權存取的數據,則整個查詢將失敗。
將授權和驗證分開的級聯規則語言。

價錢

Spark 和 Blaze 定價計劃中提供了這兩種解決方案。

首選Cloud Firestore即時資料庫
主要對資料庫中執行的操作(讀取、寫入、刪除)收費,並以較低的費率對頻寬和儲存收費。

Cloud Firestore 支援 App Engine 專案的每日支出限制,以確保您不會超出您可以負擔的成本。

詳細了解Cloud Firestore 定價方案

僅對頻寬和儲存收費,但費率較高。

了解有關即時資料庫定價計劃的更多資訊。

使用 Cloud Firestore 和即時資料庫

您可以在同一 Firebase 應用程式或專案中使用這兩個資料庫。兩種 NoSQL 資料庫都可以儲存相同類型的數據,並且客戶端庫以類似的方式運作。如果您決定在應用程式中使用這兩個資料庫,請記住前面概述的差異。

詳細了解即時資料庫Cloud Firestore中提供的功能。

準備好選擇資料庫了嗎?

希望這種比較能夠幫助您選擇 Firebase 資料庫解決方案。現在您可以了解如何將資料庫新增至 Firebase 專案。