告別測試帳號,迎來真正的多使用者時代
在先前的進度中,我們的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 登出並切換回登入畫面。
輸出結果:

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