,

Supabse 類似 Firebase 的後端服務 - db table 的建立

Supabase 一個近期 release 的產品,用來取代 Firebase 的開源後端服務,個人覺得看起來功能挺強大且方便的,所以就展開一輪研究,看能不能替換掉 Firebase。

Supabse 類似 Firebase 的後端服務 - db table 的建立

Supabase 是一個用來替代 Firebase 的開源方案,它主要提供了六大項產品分別是

Database

每一個 project 都提供一個完整的 Postgresql 資料庫,只要在後台建立好資料表,相關的 CURD API 都會幫你建立,也有類似於 Firebase 資料庫的實時更新通知。

  • Auth
  • Storage
  • AI & Vectors
  • Realtime
  • Edge Functions

目前官方提供的前端 SDK 有提供三種 JsFlutterSwift,但社群版本寫的 SDK 還蠻多的

註冊

接下來就實際註冊使用看看,目前 Free Plan 一個帳號可以開設兩個專案

使用 Github 登入後,會請你建立 organization
建立 project 選擇地區
完成後會進到這樣的 dashboard

Database

目前提供了兩種建立資料表的方式,一種是一般的 SQL 語法建立,另一種則是 Table Editor 的 GUI 操作形式。

SQL Editor

側選單中前兩個即是資料表編輯器
就可以輸入 SQL,右下角還可以加入查詢最愛
這樣在左側選單就可以快速使用

它還有一些範本(Templates)快速使用(Quickstarts)可以一鍵套用,例如你想建立一個關於國家的 table,可以使用 Quickstarts 中的 Countries,他就會快速帶入一串 SQL,可以快速幫你建立對應 ISO-3166 兩碼或三碼的國家列表。

Table Editor

另一個重點就是完全使用它提供的表格來建立資料表。在 Table Editor 中會看到一個 New table 的按鈕,按下這個會開始右側選單來開始建立流程。

Table Editor 左側選單

下圖就是一個建立 table 的第一步輸入

建立欄位的時候,可以非常直覺的設定,右側的齒輪按下去也可以再設定這一欄的類型,例如是唯一的、不可為 null 或是它是一個 array。

如果想新建自己的 enum type,可以到 database -> enumerated types 內新增。這樣在新增或修改資料表的時候,就會出現自定義的 Data Type。

如果後續想為欄位添加說明或是更改欄位的類型與其他設定,可以到

database -> table -> {資料表名稱}

接著回到 table editor 中,選擇你要的資料表可以看到對應的資料,右上角有一個 API Docs 可以看到怎麼使用 API 來 CURD 這個資料表。

停止更新 Supabase

原先以為開源專案自行架設很有彈性,結果他有些東西鎖住了,例如第三方登入的 Providers 只讓他們的託管平台使用,這樣我還是得搭配 Firebase 來做驗證,徒增困擾。