iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 10
0
Modern Web

我或許沒那麼懂 Web系列 第 10

Cloud Firestore β: (2) 建立專案 & 文件

建立資料庫

  1. 請先到 Console 建立一個專案。

  2. 到 Database 分頁,選擇建立(測試版) Firestore 資料庫

  3. 可以先選擇測試模式

  4. 這時候你就換看到檢視資料的頁面

資料庫儲存概念

在 Firestore,如昨天所述:「而 Cloud Firestore 是將資料存在被組織在 collections 中的 documents 裡」,這樣聽起來還是有點含糊,所以就讓我們在研究下去吧。這邊就就先直接將 collections 譯為「集合」、documents 譯為「文件」囉!

在 Firestore 資料庫裡,是有集合和文件的概念。集合裡面的每個項目都是文件,文件本身有欄位可以儲存資料,而文件又可以擁有多個集合,然後陷入這樣的循環:集合 -> 文件 -> 集合 -> 文件 -> 集合 ...。這樣講下來,似乎會出現雞與蛋的問題:「到底是先有集合、還是先有文件呢?」,事實上,在最一開始的階級,就是由多個集合所組成,你可以把它視為一個沒有欄位的文件。接這就開始上述的循環了。

若嘗試以 JSON 表達這樣的架構,大概就長得像這樣吧:

{
  "collection_1": {
    "document_1-1":{
      "collection_1-1-1": {
        // ....
      },
      "collection_1-1-2": {
        // ....
      },
      "field_1-1-A": "....",
      "field_1-1-B": "....",
      "field_1-1-C": "...."
      // ....
    },
    "document_1-2":{
      // ....
    }
  },
  "collection_2": {
    // ....
  }
}

每個集合和文件都有 id,可以自己命名,也可以透過系統產生 20 位的英數混合字串作為 id。

文件

在 Firestore 中,基本上就是以文件為儲存單位,而每個文件都必須存在集合之中。文件裡可以透過欄位儲存資料,像是這樣:

first : "Ruoshi"
last : "Lin"
born : 1900

如果想要更複雜的,也可以將資料以類似這樣的形式儲存:

name :
  first : "Ruoshi"
  last : "Lin"
born : 1900

這種類似嵌套的資料類型在 Firestore 被稱為 Map,如果你想要,甚至可以在 Map 裡面再建立一個 Map,變成多個嵌套:

name :
  normal: 
    first : "Ruoshi"
    last : "Lin"
	nick: "Yuehu"
born : 1900

以管理介面來舉例,大概就會像這樣:

事實上,文件本身就是一個 JSON,但文件支援更多的資料類型、而且有大小限制,最多只能到 1MB。儘管如此,就一般來說我們仍可以將文件視為一個輕量的 JSON 紀錄。


今天大致先研究到這裡,雖然不能一口氣把集合一起研究完,但是重點是要保持穩定產能,才不會今天把體力耗盡,明天就寫不出來了 XD。


上一篇
Cloud Firestore β: (1) 簡介
下一篇
Cloud Firestore β: (3) 集合 & 參照
系列文
我或許沒那麼懂 Web31

1 則留言

0
若虛
iT邦新手 5 級 ‧ 2018-11-05 22:05:05

2018-11-05 22:05:
修正圖檔失效的問題。

我要留言

立即登入留言