Firebase 提供兩種雲端式、用戶端可存取的文件資料庫。建議新客戶從 Cloud Firestore 開始:
Cloud Firestore 是建議使用的企業級 JSON 相容文件資料庫,深受超過 60 萬名開發人員信賴。適合用於具有豐富資料模型的應用程式,且這些模型需要查詢功能、擴充性和高可用性。此外,這項服務也提供低延遲用戶端同步和離線資料存取功能。
Realtime Database 是傳統的 Firebase JSON 資料庫。適合資料模型簡單、需要簡單查詢和低延遲同步處理,且擴充性有限的應用程式。
還有哪些重要事項需要考量?
思考過上述重要考量後,您可能已準備好選擇資料庫。如果您仍在權衡優缺點,本節將介紹 Cloud Firestore 和 Realtime Database 之間的其他差異。
資料模型
Realtime Database 和 Cloud Firestore 都是 NoSQL 資料庫。
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
以文件集合的形式儲存資料。
進一步瞭解 Cloud Firestore 資料模型。 |
將資料儲存為一個大型 JSON 樹狀結構。
進一步瞭解 Realtime Database 資料模型。 |
|
即時和離線支援
兩者都提供行動優先的即時 SDK,且都支援本機資料儲存空間,可供離線應用程式使用。
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
| 支援 Apple、Android 和網頁用戶端離線使用。 | 支援 Apple 和 Android 用戶端離線使用。 | |
狀態
瞭解用戶端何時上線或離線,有助於掌握相關資訊。Firebase Realtime Database 可記錄用戶端連線狀態,並在用戶端連線狀態變更時提供更新。
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
| 不支援原生。您可以透過 Cloud Functions 同步處理 Cloud Firestore 和 Realtime Database,進而建構 Realtime Database 的目前狀態支援。請參閱「在 Cloud Firestore 中建構目前狀態」。 | 支援「在家狀態」功能。 | |
查詢
透過查詢,從任一資料庫擷取、排序及篩選資料。
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
使用複合排序和篩選的索引查詢。
|
深度查詢,但排序和篩選功能有限。
|
|
寫入作業和交易
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
| 進階寫入和交易作業。 | 基本寫入和交易作業。 | |
可靠性和效能
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
Cloud Firestore 是區域和多區域解決方案,可自動調度資源。
|
Realtime Database 是區域性解決方案。
|
|
運作時間
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
極高的正常運作時間效能。
|
高運作時間效能。
|
|
擴充性
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
自動調度資源
|
擴充時需要進行資料分割。
|
|
安全性
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
結合授權和驗證的非串聯規則。
|
區分授權和驗證的串聯規則語言。
|
|
定價
Spark 和 Blaze 定價方案皆提供這兩種解決方案。
| Cloud Firestore | [ PREFERRED ] | Realtime Database |
|---|---|---|
| 主要依據在資料庫中執行的作業 (讀取、寫入、刪除) 收費,頻寬和儲存空間的費率則較低。 Cloud Firestore 支援每月預算和快訊,避免支出超出預期。 進一步瞭解 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、Web 或 REST。