iT邦幫忙

2025 iThome 鐵人賽

DAY 7
0

在開發一個具備 「使用者登入」「個別資料紀錄」 的應用時,傳統作法通常需要自行設計登入系統、處理使用者驗證、建立資料庫結構,甚至還要配置檔案儲存空間與伺服器架設,對我這樣的新手來說門檻頗高。

而我這次要打造的是一個 PWA 兒童任務管理平台,核心功能包括:

  • 任務的建立
  • 任務完成紀錄
  • 依照使用者帳號區分資料

以我當時的狀況來說,若要從零開始設計後端與登入系統,不僅耗時,還會在安全性、擴充性上遇到許多挑戰,如果有簡單可用的方案是再好不過。

這時,Firebase 成了我最佳的解決方案。


為什麼選擇 Firebase

Firebase 是 Google 提供的一站式後端服務,對於像我這樣的非網頁後端工程師來說,它的「開箱即用」特性非常吸引人。

它不僅支援多種登入方式(Email、Google、Facebook 等),還內建了 Firestore 資料庫檔案儲存空間網站 HostingGoogle Analytics 串接,甚至還有 雲端 Functions等進階功能。

https://ithelp.ithome.com.tw/upload/images/20250808/20177927xokfos5hdo.png

雖然市面上也有 SupabaseAppwrite 等類似服務,但在我比較之後,選擇了新手友善,較易上手的Firebase。

尤其當我搭配 AI 來開發時,只要給它清楚的需求,AI 完全可以直接生成可用的 Firebase 相關程式碼,讓我省下了大量摸索 API 的時間。


Firebase 的限制與取捨

當然,Firebase 也不是完美無缺。它在:

  • 大量資料的複雜查詢
  • 跨表關聯處理(像是傳統 SQL 的 JOIN)
  • 高頻率讀寫的情境

可能會有成本與效能問題。

不過對我這個專案而言,任務資料相對簡單,使用者數量也不會一次暴增(如果暴增也應該開心😄),因此這些限制對我影響不大。反而,它的簡單設定與即時同步功能,讓我能更快把重心放在產品體驗上,而不是陷入後端架構的泥淖。

https://ithelp.ithome.com.tw/upload/images/20250808/20177927aWBxVVVFo8.png


AI 指引下的 Firebase 初體驗

在確定使用 Firebase 後,我開始進行平台的核心功能開發 —— 任務資料的儲存與讀取

過程很有趣,因為我幾乎是 「全程由 AI 幫我撰寫程式」,我只需要負責和 AI 發想/討論功能和協助驗證。

我先請 AI 告訴我如何註冊 Firebase 專案、做一些基本設定,並取得 API Key
AI 也提醒我,為了安全性,不要直接在程式碼中暴露 API Key,而是應該將它放在 .env 檔案中,並在程式中透過環境變數引用。

接著,我把需求描述給 AI:

「我想要一個可以新增任務、讀取任務清單,並依登入使用者區分資料的功能。」

AI 隨即幫我生成了使用 Firestore 的資料存取程式碼,並教我如何在 React 環境中初始化 Firebase。幾次嘗試後,我就完成了資料庫與前端的連線,能夠在瀏覽器中成功新增、讀取任務資料,這個瞬間真的讓我有種「哇,原來後端可以這麼快接好」的感覺。

登入機制與資料安全

為了確保不同使用者的資料不會互相影響,我同時啟用了 Firebase Authentication(身份驗證服務)。

Firebase 提供了一個非常重要的功能——安全規則(Security Rules)。透過這些規則,我可以設定成「只有登入的使用者,才能存取自己帳號底下的資料」,即便前端程式邏輯出錯,也能避免資料外洩的風險。

這部分我也是請 AI 協助產生合適的規則,依我的資料結構稍微調整。很快地,我的任務資料就能做到完全依帳號隔離,安全性上也更放心。

service cloud.firestore {
  match /databases/{database}/documents {

    // 只要最上層的 userId 匹配,就允許存取該用戶下的所有數據
    match /users/{userId}/{collection}/{docId} {
      allow read, write: if request.auth != null &&
                         request.auth.uid == userId &&
                         isAllowedUser();
    }
  }
}

成本與方案選擇

Firebase 有免費方案,對於使用者數不多、資料量不大的專案來說,免費額度已經非常夠用。我原本也是打算用免費方案,但後來因為啟用了一些額外功能(像是 Cloud Functions),所以升級到了付費方案。

幸好 Firebase 在付費後仍提供前三個月 300 美金的額度,而且每天都有免費使用量。如果你的應用還在成長初期,除非用量非常大,否則幾乎不用擔心會超支。

開發初期的關鍵收穫

在這一階段,我靠著 AI 的引導與 Firebase 提供的整合服務,很快地完成了平台最基礎的登入與資料存取功能。

如果沒有 Firebase,我可能得花好幾週自己搭後端、設計 API、處理安全機制,還要想辦法部署。但現在,這些步驟都被極大簡化,讓我能專注在產品核心體驗上。

下一篇文章,我會分享除了登入與資料庫之外,我在 Firebase 上還用到了哪些功能,以及它們在這個兒童任務管理平台中扮演了什麼角色。

敬請期待下一篇:《AI 助我用 Firebase 打造兒童任務管理平台 (下集)》


上一篇
(Day 6)用 AI 設計 Logo 與命名:實作與思考
下一篇
(Day 8)AI 助我用 Firebase 打造兒童任務管理平台 (下集)
系列文
VIBE CODING 全紀錄:0 經驗用 AI 打造 PWA 兒童任務管理平台》30
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言