Firebase Cloud Firestore 及 Realtime Database 介紹及比較

Firebase 自從併入 Google 後, BAAS 的功能漸漸地完備了,但是原有的 Realtime Database 卻沒有進展,直到 Google 在 Firebase 服務中增加了新資料庫服務 Cloud Firestore。

摘要筆記

  • Firebase 目前並存 Cloud Firestore 跟 Realtime Database 兩個資料庫服務,可同時使用,但整體資料架構不同,且資料不互通。

  • Cloud Firestore 增加了 Collection 概念。資料庫的 Root 為多個 Collection,每個 Collection 可裝載多個 Document,每個 Document 實體中也可包含 Collection。

  • Cloud Firestore 支援了更多資料格式,比如:object, array, geopoint, reference。其中 reference 可指定到特定節點的 Document 實體。

  • Cloud Firestore 可自定義 index,支援 multi-key index。可以簡易做到混合(compound)的排序(sorting)和條件過濾(filtering)。

  • Cloud Firestore 同 Collection 中的文件,依然沒有 schema 和 key constraint。因此在 sorting 時,如果是 mixed type 也有其先後的不同。

  • Cloud Firestore 支援原子性 (atomically) 執行批次指令 (batch operation)。
  • Cloud Firestore 新增了 Web 的 offline 支援。
  • Cloud Firestore 比 Realtime Database 有更好的擴展性,會自動 sharding。Realtime Database 支援上限為:在同一個資料庫中 100,000 同時連線數與每秒 1,000 write。超過的話就必須自行分開成多個 DB。
  • Cloud Firestore 也支援 Realtime Database 的事件監聽模式 (added, modified, removed),並可監聽在 Collection 中的某個條件的多個 Document。

  • Cloud Firestore 支援 Cloud Functions 監聽對於 Collection,或是單一 Document 的 Trigger (onCreate, onUpdate, onDelete, onWrite),但還不支援針對特定一個 Field 監聽。

如何選擇

Google:Firestore 目前已經 GA,提供更多的功能、更好的效能、更強大的擴展性,未來也將會開發更全面的服務,基於上述考量,Filestore 會是很好的選擇。 儘管如此,目前也還沒有關於 Realtime Database 會被退役的消息喔!(參考文章)

注意事項

Limits

  • Cloud Firestore 源自於 Google Cloud Platform 的 Cloud Datastore 資料庫,所以當你啟用 Cloud Firestore 後,將無法在同個專案中 Cloud Datastore。

延伸閱讀

(本文來自合作部落客 Terry Huang,GCP 專門家授權轉載。)

 


連絡「GCP 專門家」
想在手機閱讀更多Google資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems