Cloud Firestore 是 Google 提供的一款雲端 NoSQL 資料庫,可以快速地運用在 Firebase 或 GCP 上進行 APP、網頁應用的開發。
這兩種資料庫服務都是由 Firebase 提供,可以說 Cloud Firestore 是基於原本 Firebase 的 Realtime Database 的新一代即時資料庫。
兩者主要的差別可以從資料模型上看出來。
Realtime Database 將資料存為一個大型的 JSON tree,不像一般的 SQL 資料庫具有 table 與 row,每次新增一筆資料都變成一個節點對應到 JSON tree 中一個特定的 key。在簡單的資料結構能方便的使用,但若有較複雜的分層資料會比較難擴展。
而 Cloud Firestore 在資料模型上優化了這部分,使用更直觀的檔案與資料夾概念:
從上圖可以看到集合(collection)與文件(document)的結構,集合中包含文件、文件內存放資料,而文件中也可以創建子集合。
引用 oxxo 文章中一個不錯的比喻:「可以把集合想像成 A4 資料夾,文件就是 A4 紙張,資料是寫在 A4 紙上而不是寫在資料夾上。」
實際上操作會像是下面的模式,本質上也是 JSON 格式,但比起 Realtime Database 來得更直觀:
而官方也建議新的開發專案都使用 Cloud Firestore。因為他具有更直觀的數據模型、更快速的查詢、更好的效能及可擴展性,而且從文件上看起來未來還會提供更多新功能。
關於與 Realtime Database 更詳細的比較可參考這篇官方文件。
今天先介紹到 Cloud Firestore 的基本簡介,明天開始會進入實例操作,會從如何新增專案、設定到利用簡單範例來練習寫入與讀取的語法,我們明天見!
另外關於後端筆記的內容算是新手上路,若是有任何地方有問題都歡迎留言指出,感謝!