Realtime vs Cloud Firestore:選擇哪個 Firebase 數據庫
已發表: 2018-10-12歷史可以追溯到不遠的 Firebase 數據庫。 Firebase 最初是一個移動和 Web 開發平台,於 2011 年成立,然後在 2014 年被科技巨頭 Google 收購,其命運發生了變化。
跳過 Firebase 的演變歷史,在被谷歌收購後的一年內,它與 Divshot 合併,從那時起它已經擴展到成為移動開發者的統一平台。
Firebase 現在與各種其他 Google 服務集成,為開發人員提供更廣泛的產品和規模。 事實上,它所提供的好處使Firebase 成為初創公司的一個趨勢過程。
那麼什麼是 Firebase 數據庫? Firebase 是一種 BaaS,即後端即服務。 使用 Firebase 提供的產品,不僅是移動開發人員可以構建高質量的應用程序。 谷歌還為 Firebase 網絡用戶推出了幾項新功能。
Firebase 有兩種產品可以構建我們剛才提到的所有應用程序。 實時和雲 Firestore。
Realtime 是 Google 的 Firebase 數據庫和 Cloud Firestore 的成熟產品,雖然承諾有更好的技術,但仍處於 beta 測試階段。
根據谷歌:
實時數據庫是 Firebase 的原始數據庫。 對於需要跨客戶端實時同步狀態的移動應用程序來說,這是一種高效且低延遲的解決方案。
Cloud Firestore是 Firebase 用於移動應用開發的新旗艦數據庫。 它通過一種新的、更直觀的數據模型改進了實時數據庫的成功。 Cloud Firestore 還具有比實時數據庫更豐富、更快的查詢和更好的擴展性。
在介紹實時數據庫和 Cloud Firestore 的各個屬性之前,讓我們先看看在您的下一個項目中使用 Firebase 數據庫的優缺點是什麼:
Firebase 數據庫的優勢:
如果我們看一下為什麼要使用 firebase 數據庫作為所有移動和Web 應用程序開發的一站式數據庫的原因列表,我們就會明白為什麼 Firebase db 在移動應用程序開發行業如此受歡迎。
- 輕鬆數據遷移——最近的發展為開發人員提供了輕鬆遷移數據的工具。
- 不需要額外的知識——在 Firebase db 中操作幾乎需要關於 devOps 或 sysadmin 的零知識。
- 驗證各種數據類型——儘管 Firebase 數據庫結構是無模式的,但它仍然具有驗證各種數據類型的基本能力。
- 一站式工具——它是一個包羅萬象的工具,也是小型移動應用程序後端唯一需要的工具。
- 更易於使用——使用難度略高於平均水平,但在與分析和崩潰監控集成方面比大多數其他系統更容易
- 免費使用 –在初始階段是免費的,所以第一次嘗試它的開發人員不必擔心進行大量的初始投資
- 豐富的代碼庫——所有跨編程語言的代碼庫都是相似的,並且對於新手來說也維護得很好。
- JSON 數據結構 –數據結構是與 UI JavaScript 完美映射的 JSON。
- 快速開發——從頭開始製作應用程序非常快——身份驗證、電子郵件、版本控制、託管、監控、DevOps、正常運行時間。
- 輕鬆流式傳輸——實時運行或流式更新非常容易。
現在讓我們比較實時數據庫和 Cloud Firestore,以便更清楚地了解何時使用哪個。 Cloud Firestore 仍處於 beta 測試階段,它正在以比實時數據庫更有前途的方式尋找和工作。 在此比較中,將了解這兩個數據庫有何不同,以及誰贏得了實時數據庫與雲 Firestore。
數據模型
- 實時數據庫將數據存儲為一棵大型 JSON 樹,這使得存儲簡單數據非常容易,但複雜或分層數據更難大規模組織。
- 另一方面, Cloud Firestore以文檔的形式存儲數據,這些文檔以集合的形式組織。 在這方面,簡單數據的存儲類似於 JSON,它存儲在文檔中。 然而,使用文檔中的子集合來大規模組織複雜或分層數據並不容易。 總體而言,它需要較少的非規範化和數據扁平化。
實時和離線支持
- 實時數據庫僅為 Android 和 iOS 移動客戶端提供離線支持。
- 另一方面, Cloud Firestore也為 Android、iOS 和 Web 客戶端提供離線支持。
查詢
- 實時數據庫提供具有有限排序和過濾功能的深度查詢,開發人員可以在單個查詢中對屬性進行排序或過濾。 並且默認情況下所有查詢都是深度的,即總是返回整個子樹。
- Cloud Firestore使用複合排序和過濾索引查詢,開發人員可以在單個查詢中對屬性進行鏈接過濾和組合過濾和排序。 也可以為子集合編寫淺查詢,也就是說,開發人員可以在文檔內查詢,而不是在整個集合或整個文檔內進行查詢。 不僅如此,查詢也是默認索引的,這意味著查詢性能與結果集的大小成正比,而不是與數據集的大小成正比。
交易
- 在實時數據庫中,有基本的寫入和事務操作。 寫入數據作為單獨的操作工作,事務需要在原生 SDK 中完成回調。
- Cloud Firestore允許原子寫入和事務操作。 它對操作進行批處理並自動完成它們。 此外,交易會自動重複,直到完成。
性能和可靠性
- 實時數據庫是一個成熟的產品。 它具有經過多次試驗和測試的真品的穩定性。 它還具有非常低的延遲,因此它是頻繁狀態同步的好選擇。 雖然,數據庫僅限於單個區域中的區域可用性。
- Cloud Firestore的性能尚無法衡量,因為它仍處於測試階段。 而且 beta 產品的穩定性與完全推出的產品的穩定性不同。 但在可靠性方面,Cloud Firestore 將您的所有數據存儲在不同地區的多個數據中心,確保全球可擴展性和強大的可靠性。 理論上,每當 Cloud Firestore 出測試版時,它都會比實時數據庫具有更強的可靠性。
可擴展性
- 在實時數據庫中,擴展需要分片。 簡而言之,在單個數據庫中擴展到大約 100,000 個並發連接和 1000 次寫入/秒,除此之外,它需要跨多個數據庫分片您的數據。
- 當Cloud firestore發布測試版後,它的擴展將是自動的,開發人員不必將他們的數據分片到多個實例中。
安全
- 實時數據庫具有需要單獨驗證的級聯規則。 firebase 數據庫規則是這裡唯一的安全選項,開發人員需要使用“驗證”規則單獨驗證數據。
- Cloud Firestore為使用身份和訪問管理 (IAM) 的移動、網絡和服務器 SDK 提供更簡單、更強大的安全性。 數據驗證也會自動發生。 此外,規則可以限制查詢,也就是說,如果查詢的結果可能包含開發人員無權訪問的數據,則整個查詢將失敗。
價錢
- 實時數據庫僅對帶寬和存儲收費,但價格較高。
- 另一方面, Cloud Firestore主要對在數據庫中執行的操作(讀取、寫入、刪除)收費,並以較低的速率、帶寬和存儲空間收費。 它還支持 Google App Engine 項目的每日支出限制。
您是否仍然想知道 Firebase 是如何工作的? 讓我們回顧一下我們在上面的文章中所知道的內容。
何時使用實時數據庫:
- 如果您的數據簡單且不復雜或分層
- 如果您需要在單個數據庫中擴展 100,000 個並發連接以下 1000 次寫入/秒
- 當您需要一個為整體帶寬和存儲而不是執行的單個操作收費的數據庫時。
何時使用 Cloud Firestore 數據庫:
- 如果您的數據複雜或分層
- 如果您的數據擴展到超過 100,000 個並發連接
- 如果您需要更精確的消費限額和主要針對 1 收費的數據庫是 PicCollage、Fabulous、Shazam 和 Skyscanner,我們都同意它們運行成功。
總之,Firebase 數據庫模型對他們來說很順利。 Realtime firebase 多年來一直成功運行,去年隨著 Cloud Firestore 測試版的發布,移動應用程序開發人員和應用程序開發公司有了更好的東西。