Firebase 提供兩種基於雲端、用戶端可存取的資料庫解決方案,支援即時資料同步:
Cloud Firestore是 Firebase 用於行動應用程式開發的最新資料庫。它以即時資料庫的成功為基礎,採用了新的、更直觀的資料模型。 Cloud Firestore 還具有比即時資料庫更豐富、更快的查詢和可擴充性。
即時資料庫是 Firebase 的原始資料庫。對於需要跨客戶端即時同步狀態的行動應用程式來說,這是一個高效能、低延遲的解決方案。
Firebase 推薦哪個資料庫?
您選擇的資料庫解決方案將取決於許多因素,但當涉及到某些功能時,我們可以就哪個資料庫適合您提出建議。
兩種解決方案都提供:
- 客戶端優先的 SDK,無需部署和維護伺服器
- 即時更新
- 免費套餐,然後按使用量付費
關鍵考慮因素
除了兩個資料庫共有的強大核心功能之外,請考慮下面列出的任何或所有註意事項將如何影響您的應用程式的成功。
資料庫的作用 | 我的應用程式使用資料庫... 主要是同步數據,以及基本的查詢。 如果您不需要進階查詢、排序和事務,我們推薦即時資料庫。 進階查詢、排序和交易。 如果您需要與資料進行複雜的互動(例如在電子商務應用程式中),我們建議您使用Cloud Firestore 。 |
對數據的操作 | 我的應用程式的資料庫使用情況看起來像... 經常更改的幾 GB 或更少的數據。 如果您的應用程式將發送一系列微小更新(例如在數位白板應用程式中),我們建議使用即時資料庫。 數百 GB 到 TB 的資料的讀取次數遠多於更改次數。 對於非常大的資料集,並且經常需要批量操作時,我們推薦Cloud Firestore 。 |
資料模型 | 我更喜歡將我的數據建構成... 一個簡單的 JSON 樹。 對於 JSON 非結構化數據,我們推薦Realtime Database 。 組織成集合的文件。 對於結構化文件和集合,我們建議Cloud Firestore 。 |
可用性 | 我的可用性需求是... 99.999% 的極高正常運作時間保證。 如果可用性至關重要(例如在電子商務應用程式中),我們建議Cloud Firestore 。 保證至少 99.95% 的正常運作時間。 當非常高但不是關鍵的可用性可以接受時,我們建議使用Cloud Firestore或Realtime Database 。 |
本機資料離線查詢 | 我的應用程式需要在連接有限或沒有連接的裝置上執行查詢... 頻繁地。 對於使用者離線時對本機資料的複雜查詢功能,我們推薦Cloud Firestore 。 很少或從不。 如果您希望使用者始終在線,我們建議您使用Cloud Firestore或Realtime Database 。 |
還有哪些重要事項需要考慮?
考慮完前面的關鍵考慮因素後,您可能已經準備好選擇資料庫了。如果您仍在權衡利弊,本部分將介紹 Cloud Firestore 和即時資料庫之間的其他差異。
資料模型
即時資料庫和 Cloud Firestore 都是 NoSQL 資料庫。
即時資料庫 | 雲端Firestore |
---|---|
將資料儲存為一棵大型 JSON 樹。
了解有關即時資料庫資料模型的更多資訊。 | 將資料儲存為文檔集合。
詳細了解Cloud Firestore 資料模型。 |
即時和離線支援
兩者都具有行動優先的即時 SDK,並且都支援離線就緒應用程式的本地資料儲存。
即時資料庫 | 雲端Firestore |
---|---|
離線支援蘋果和安卓客戶端。 | 對 Apple、Android 和 Web 用戶端的離線支援。 |
在場
了解客戶端何時在線上或離線非常有用。 Firebase 即時資料庫可以記錄用戶端連線狀態,並在每次用戶端連線狀態變更時提供更新。
即時資料庫 | 雲端Firestore |
---|---|
支持存在。 | 原生不支援。您可以透過使用 Cloud Functions 同步 Cloud Firestore 和即時資料庫,利用即時資料庫對狀態的支援。請參閱在 Cloud Firestore 中建立狀態。 |
查詢
透過查詢從任一資料庫中檢索、排序和過濾資料。
即時資料庫 | 雲端Firestore |
---|---|
具有有限排序和過濾功能的深度查詢。
| 具有複合排序和過濾功能的索引查詢。
|
寫入和事務
即時資料庫 | 雲端Firestore |
---|---|
基本的寫入和事務操作。 | 進階寫入和事務操作。 |
可靠性和性能
即時資料庫 | 雲端Firestore |
---|---|
即時資料庫是一個區域解決方案。
| Cloud Firestore 是一種可自動擴充的區域和多區域解決方案。
|
可擴展性
即時資料庫 | 雲端Firestore |
---|---|
擴充需要分片。
| 縮放是自動的。
|
安全
即時資料庫 | 雲端Firestore |
---|---|
將授權和驗證分開的級聯規則語言。 | 結合授權和驗證的非級聯規則。
|
價錢
Spark 和 Blaze 定價計劃中提供了這兩種解決方案。
即時資料庫 | 雲端Firestore |
---|---|
僅對頻寬和儲存收費,但費率較高。 了解有關即時資料庫定價計劃的更多資訊。 | 主要對資料庫中執行的操作(讀取、寫入、刪除)收費,並以較低的費率對頻寬和儲存收費。 Cloud Firestore 支援 App Engine 專案的每日支出限制,以確保您不會超出您可以負擔的成本。 詳細了解Cloud Firestore 定價方案。 |
使用 Cloud Firestore 和即時資料庫
您可以在同一 Firebase 應用程式或專案中使用這兩個資料庫。兩種 NoSQL 資料庫都可以儲存相同類型的數據,並且客戶端庫以類似的方式運作。如果您決定在應用程式中使用這兩個資料庫,請記住上面概述的差異。
詳細了解即時資料庫和Cloud Firestore中提供的功能。
準備好選擇資料庫了嗎?
希望這種比較能夠幫助您選擇 Firebase 資料庫解決方案。現在您可以了解如何在 Firebase 專案中新增資料庫。
- 對於Cloud Firestore ,請查看Cloud Firestore 入門。
- 對於即時資料庫,請閱讀適用於您的平台的入門主題: Apple 、 Android 、 C++ 、 Unity 、 Web或REST 。