Firebase 提供兩種可供用戶端存取的雲端文件資料庫。建議新客戶從 Cloud Firestore 開始:
Cloud Firestore 是建議使用的企業級 JSON 相容文件資料庫,超過 25 萬名開發人員都信賴這項服務。適合用於需要查詢功能、擴充性和高可用性的豐富資料模型應用程式。此外,這項服務還提供低延遲用戶端同步功能,以及離線資料存取功能。
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 支援為 App Engine 專案設定每日支出上限,確保您不會超出可接受的費用。 進一步瞭解Cloud Firestore定價方案。 |
僅針對頻寬和儲存空間計費,但費率較高。 進一步瞭解 Realtime Database 定價方案。 |
使用 Cloud Firestore 和 Realtime Database
您可以在同一個 Firebase 應用程式或專案中使用這兩種資料庫。這兩種 NoSQL 資料庫都能儲存相同類型的資料,且用戶端程式庫的運作方式類似。如果您決定在應用程式中同時使用這兩個資料庫,請留意先前說明的差異。
進一步瞭解 Realtime Database 和 Cloud Firestore 提供的功能。
準備好選擇資料庫了嗎?
希望這項比較有助您決定要使用哪種 Firebase 資料庫解決方案。 現在,您可以瞭解如何將資料庫新增至 Firebase 專案。