iT邦幫忙

2026 iThome 鐵人賽

DAY 15
0
Vibe Coding

以開發「智慧健身與習慣追蹤 PWA 」為主軸的 30 天 Vibe Coding 挑戰清單。系列 第 15 篇

[Day 15] Vibe Coding 實戰:打造專屬空間——實作 Firebase Google 登入與會員狀態管理

  • 分享至 

  • xImage
  •  

告別測試帳號,迎來真正的多使用者時代
在先前的進度中,我們的Fitness PWA已經製作了打卡鍵盤、導覽列、以及能夠及時連動資料庫CRUD的圓餅圖儀表板。但是目前所有的資料都放在test_user_001的資料夾中,這樣如果有其他使用者一起使用,那他們所登記的資料,都會被全部混在一起,因此為了解決這個問題今天要導入的是Firvase Authentication,實作「使用google帳號登入」,讓每位使用者都可以擁有專屬的且被保護的雲端資料庫空間。
** 用自然語言製作出登入與權限綁定邏輯**
在這個階段,要讓AI處理繁瑣的 OAuth 彈出視窗邏輯,並把全域的 test_user_001 徹底替換成真實的會員 ID。
AI Prompt:
@index.html @js/firebase/app.js @js/services/workout-service.js @js/main.js
我們準備將原本寫死的測試帳號 (test_user_001) 替換為真實的多使用者系統。我已經在 Firebase 後台開啟了 Google 登入功能。
實作要求:
全螢幕登入 UI: 在 @index.html 中新增一個帶有 Vibe Fitness 風格的全螢幕登入畫面 (深色背景、毛玻璃元素)。畫面上需有一個質感的「使用 Google 帳號登入」按鈕。當使用者未登入時,必須強制顯示此畫面並隱藏主程式。
實作 Google 登入邏輯:
在 app.js (或 auth 相關檔案) 中引入 Firebase 的 GoogleAuthProvider 與 signInWithPopup。
實作 onAuthStateChanged 監聽器,確保使用者重整網頁後依然保持登入狀態。
資料庫權限綁定:
登入成功後,將 @js/services/workout-service.js 裡面所有的 test_user_001 替換為當前使用者的真實 ID (user.uid)。
確保所有讀取、寫入、修改、刪除操作,都只針對該 uid 路徑下的資料進行。
登出功能: 在畫面的適當位置(例如導覽列或頁面右上角)加入一個「登出」按鈕,點擊後執行 Firebase 登出並切換回登入畫面。

輸出結果:
https://ithelp.ithome.com.tw/upload/images/20260929/20184339q6dPytLgvf.png

https://ithelp.ithome.com.tw/upload/images/20260929/20184339CO9QOzm9kM.png

可以看到已經成功的新增了登入與登出功能,如果使用者尚未登入的話會被系統擋住後半段程式內容,要求使用者以GOOGLE帳戶登入後才可使用,且也確實只有使用者的紀錄在圓餅圖與長條圖中。


上一篇
[Day 14] Vibe Coding 實戰:掌握數據掌控權——實作編輯刪除與圓餅圖肌群分析
下一篇
[Day 16] Vibe Coding 實戰:讓網頁變成真正的 App——實作 PWA Manifest 與離線快取
系列文
以開發「智慧健身與習慣追蹤 PWA 」為主軸的 30 天 Vibe Coding 挑戰清單。 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言