Firebase 提供兩種雲端型、可供用戶端存取的文書資料庫。我們建議新客戶先從 Cloud Firestore 開始:
Cloud Firestore 是建議的企業級 JSON 相容文件資料庫,已獲得超過 25 萬名開發人員的信賴。這類應用程式含有豐富的資料模型,需要具備可查詢性、可擴充性和高可用性。也提供低延遲的用戶端同步和離線資料存取功能。
Realtime Database 是傳統的 Firebase JSON 資料庫。這類應用程式適合使用簡單資料模型,需要簡單查詢和低延遲同步處理,且擴充性有限。
還有哪些重要事項需要考量?
考量上述重要事項後,您可能已準備好選擇資料庫。如果您仍在評估優缺點,請參閱本節,瞭解 Cloud Firestore 和 Realtime Database 之間的其他差異。
資料模型
Realtime Database 和 Cloud Firestore 都是 NoSQL 資料庫。
Cloud Firestore | [ 建議 ] | Realtime Database |
---|---|---|
將資料儲存為文件集合。
進一步瞭解 Cloud Firestore 資料模型。 |
將資料儲存為一個大型 JSON 樹狀結構。
進一步瞭解 Realtime Database 資料模型。 |
支援即時和離線功能
兩者皆有行動優先、即時 SDK,且都支援離線應用程式的本機資料儲存空間。
Cloud Firestore | [ 建議 ] | Realtime Database |
---|---|---|
支援 Apple、Android 和網路用戶端的離線功能。 | 支援 Apple 和 Android 用戶端的離線功能。 |
Presence
瞭解用戶何時上線或離線,可能會很有幫助。Firebase Realtime Database 可記錄用戶端連線狀態,並在用戶端連線狀態每次變更時提供更新。
Cloud Firestore | [ 建議 ] | Realtime Database |
---|---|---|
不支援原生廣告。您可以使用 Cloud Functions 同步處理 Cloud Firestore 和 Realtime Database,藉此建構 Realtime Database 支援的狀態。請參閱「在 Cloud Firestore 中建構狀態」。 | 支援在家狀態感應功能。 |
查詢
透過查詢從任一資料庫擷取、排序及篩選資料。
Cloud Firestore | [ 建議 ] | Realtime Database |
---|---|---|
含有複合排序和篩選功能的索引查詢。
|
深層查詢,具有有限的排序和篩選功能。
|
寫入作業和交易
Cloud Firestore | [ 建議 ] | Realtime Database |
---|---|---|
進階寫入和交易作業。 | 基本寫入和交易作業。 |
可靠性和效能
Cloud Firestore | [ 建議 ] | Realtime Database |
---|---|---|
Cloud Firestore 是可自動調整資源配置的區域和多區域解決方案。
|
Realtime Database 是區域解決方案。
|
運作時間
Cloud Firestore | [ 建議 ] | Realtime Database |
---|---|---|
極高的正常運作時間效能。
|
高可用性效能。
|
擴充性
Cloud Firestore | [ 建議 ] | Realtime Database |
---|---|---|
系統會自動調整資源配置。
|
擴充需要分割。
|
安全性
Cloud Firestore | [ 建議 ] | Realtime Database |
---|---|---|
結合授權和驗證的非連鎖規則。
|
階層規則語言,可將授權和驗證分開。
|
定價
這兩種解決方案皆適用於 Spark 和 Blaze 定價方案。
Cloud Firestore | [ 建議 ] | Realtime Database |
---|---|---|
主要依據在資料庫中執行的作業 (讀取、寫入、刪除)收費,並以較低的費率收取頻寬和儲存空間費用。 Cloud Firestore 支援 App Engine 專案的每日支出上限,確保您不會超出可接受的費用。 進一步瞭解 Cloud Firestore 定價方案。 |
只收取頻寬和儲存空間費用,但費率較高。 進一步瞭解 Realtime Database 定價方案。 |
使用 Cloud Firestore 和 Realtime Database
您可以在同一個 Firebase 應用程式或專案中使用這兩種資料庫。這兩種 NoSQL 資料庫都能儲存相同類型的資料,且用戶端程式庫的運作方式也相似。如果您決定在應用程式中使用這兩種資料庫,請留意先前所述的差異。
進一步瞭解 Realtime Database 和 Cloud Firestore 提供的功能。
準備選擇資料庫了嗎?
希望這份比較資料能協助您決定採用 Firebase 資料庫解決方案。 接下來,您可以瞭解如何在 Firebase 專案中新增資料庫。
- 如要瞭解 Cloud Firestore,請參閱「開始使用 Cloud Firestore」。
- 如要使用 Realtime Database,請參閱您所用平台的「開始使用」主題:Apple、Android、C++、Unity、網頁或 REST。