概念都懂了,來真的做一個、放上線。這次刻意走全景圖的 B 路 (直接用指令從你的電腦上線),平台則換用對照表裡「自帶資料庫」的 Firebase 這次刻意用直接下指令從你的電腦上線 的方式,平台則選用「自帶資料庫」的 Firebase ,讓你把兩條路、兩種平台都體驗到。用 Antigravity 或 VS Code 都可以,選你自己順手的那一個(操作和下面的 prompt 完全一樣);整個過程幾乎都讓 AI 代勞,你只要負責出一張嘴。前端、後端、API 這些詞忘了,回第 8 章 複習。
先看一個真實激勵:一個人、兩天、做出下載冠軍(相關報導 )
爆紅 App「焦慮戳戳樂 」(一個大按鈕,戳一下就計數一次)就是設計師王甫瑄用 AI 工具兩天做出來 、衝上 App Store 下載第一名的。功能越單純,越快做得出來。你接下來要做的,也是這種「小而完整」的東西。
① 你要做的:一個「班級許願牆」
一頁網站:任何人輸入暱稱和一句話、按送出,下面就即時出現所有人的留言 ,而且重新整理、換別人開都還在。把下面這段直接複製、貼給你的 AI:
請用一個 index.html 檔,做一個「班級許願牆」網頁:畫面上有暱稱欄、留言欄、一個送出按鈕;送出後把留言存到 Firebase Firestore,並即時顯示所有人的留言(最新的排最上面)。請用最簡單、最少檔案的寫法,並在程式裡用註解清楚標出「把 Firebase 設定貼在這裡」的位置。
喜歡別的主題也行,把「班級許願牆」換成你要的就好:
家族留言板 社團公告牆 課堂匿名問答牆 生日祝福牆 讀書會金句牆 揪團報名牆 樹洞情緒牆
額度快用完?換更小的「戳戳樂」
AI 免費額度有限、禁不起反覆除錯。如果額度快用完,就退成更小、更好做的「線上焦慮戳戳樂 」:一個大按鈕,戳一下數字 +1,而且大家一起戳、數字共享 (一樣是全端,但更小)。把這段貼給 AI:
請用一個 index.html 檔,做一個「線上焦慮戳戳樂」:畫面中央一個大按鈕,每按一下就把 Firebase Firestore 裡的一個共用數字加 1,並即時顯示目前總次數(所有人共享同一個數字)。用最簡單、最少檔案的寫法,標出我要貼 Firebase 設定的位置。
同樣可以換主題:
加油打氣鈕 全班一起點 線上紓壓泡泡紙 戒糖打卡計數 募款累積進度 想下課人數
② 開一個 Firebase 免費資料庫(跟著點)
AI 把網頁做好後,它需要一個地方存留言。照下面點一次就有:
開資料庫 :左邊選「Firestore Database」→ 按「建立資料庫」。新版會跑三小步:① 版本 選「Standard 版」按下一步 → ② 資料庫 ID 留預設、位置選 asia-east1(Taiwan)按下一步 → ③ 設定 選「以測試模式開始 」按建立。
拿設定 :點左上角齒輪「設定 」,在跳出的選單點「一般 」,往下捲到「你的應用程式 」,點網頁(Web) 那個圖示(像程式碼括號的符號),取個暱稱、不用 勾 Firebase Hosting,按「註冊應用程式」。接著會出現一段 firebaseConfig 程式碼,整段複製。(也可以從左上角「專案總覽」首頁中間那排圖示點網頁那個。)
接起來 :不用自己開檔貼 ,最省事的是把剛複製的設定直接貼到 AI 對話框,打「這是我的 Firebase 設定,幫我貼到 index.html 正確位置並接上資料庫」,AI 會自動改好。(雙擊 index.html 看到的是「網頁預覽」,不是改程式的地方;程式要在編輯器裡改,交給 AI 最快。)
你在上面選的「測試模式」課堂練習用沒問題。想知道它的安全性、apiKey 會不會外洩、長期公開要注意什麼,點開下面這塊。
想多懂一點:測試模式、安全規則、apiKey 安不安全?
「測試模式」是什麼 :等於先把資料庫的門打開,30 天內任何人都能讀寫 你的留言。課堂練習很方便、沒問題;但 30 天後會自動上鎖,而且若要長期公開 給人用,要到「規則」分頁設好「安全規則 」(決定誰能讀、誰能寫)。真正保護資料的是這條規則,不是把金鑰藏起來。 對應對照表 裡 Firebase 的注意事項 這也是使用 Firebase 時最容易踩雷的注意事項 。
貼含 apiKey 的設定出去,安全嗎?安全。 Firebase 的 apiKey 不是密碼 ,只是你專案的「身分證號」,本來就會出現在網站程式碼裡、每個訪客都看得到,這是 Firebase 的正常設計,貼給 AI、放進 HTML 都沒問題。(課程前面說「不能放前端」的,是伺服器用的祕密金鑰,例如規格書網站那把 Gemini 金鑰,那是另一種東西。真正保護資料的是上面說的「安全規則」。)
要長期公開、升成正式版怎麼做? 就一件事:去把「安全規則」設好,不要繼續用測試模式。到 Firebase 主控台 → 左邊「Firestore Database」→ 上方「規則 」分頁,改好內容後按右上「發布 」就生效(同一頁的「規則 Playground」可以先模擬某筆讀寫會不會被擋)。規則語法不用自己背,把需求貼給 AI 最快,例如:「我的 Firestore 是留言板,任何人都能看留言,但每則文字要少於 200 字才能寫入,不需要登入。請幫我寫出 Firestore security rules。 」拿到規則後,貼進「規則」分頁按發布即可。常見三種需求:① 全部鎖死 (誰都不能讀寫,正式模式的預設)、② 公開可看、留言加條件才放行 (適合班級留言板、戳戳樂)、③ 要登入才能寫 (最嚴謹,但要另外開啟 Firebase 的「Authentication」讓人登入)。記住順序:練習用測試模式 → 要長期公開前,先把規則改好再分享網址。
③ 上線:先登入一次,再部署
部署前要用 Google 帳號登入一次 。這個登入會跳出瀏覽器、要你親自點 ,所以 AI 的終端機做不到 (會回報 non-interactive)。這一次請你自己在編輯器的「終端機」打這行(用建立資料庫那個 Google 帳號登入、允許):
npx firebase-tools login
登入過程它可能先問你一兩個 Y/n 的問題(例如「要不要啟用 Gemini 功能」「要不要回報使用資料」),這些都是非必要 的,打 n 按 Enter 即可,不影響登入。接著瀏覽器會跳出來讓你用 Google 帳號登入、允許。
登入只要這一次 ,憑證會記在你電腦裡。接著就能部署,你自己打、或回頭叫 AI 幫你跑都行:
npx firebase-tools deploy --only hosting
跑完它會給你一個像 你的專案.web.app 的網址。把網址傳到群組,全班就能一起留言了 ,這就是「上線」。(若它說找不到 hosting 設定/firebase.json,先叫 AI「幫我建立 firebase.json,public 設成 index.html 所在的資料夾」,再回來 deploy。)
部署成功就長這樣:看到綠色的「Deploy complete!」和一個 ...web.app 的 Hosting URL,代表你的網站已經上線。把那個網址傳給別人,就能一起用了。
④ 想一想(扣回本章對照表)
反思題
如果把這個許願牆改放到 GitHub Pages ,會發生什麼事?為什麼?(提示:留言要存在哪裡?)
對照本章對照表 ,你這次用到了哪一格? 對照 GitHub Pages/Vercel/Firebase 三種免費上線組合,你這次用到了哪一個? 如果改用 Vercel ,你會需要多做什麼?
反過來,如果只是做一個「靜態的自我介紹頁」,三個組合你會選哪個?為什麼?
看參考解答
Q1|放到 GitHub Pages 會怎樣?
要看「留言存在哪裡」。如果是你自己寫後端、自己存資料的全端 app,GitHub Pages 就做不到 ,因為它只能放靜態網頁、沒有後端也沒有資料庫,留言沒地方存。不過我們這個許願牆是把存資料的工作外包給 Firebase (網頁直接連 Firestore 存取),所以把這份網頁放到 GitHub Pages,留言其實還是會動 ,因為真正的資料庫一直是 Firebase 在管,GitHub Pages 只負責「放網頁」。GitHub Pages 真正做不了的是「自己當後端跑程式」(像規格書評分網站那種),不是「呼叫外部資料庫」。
Q2|用到對照表哪一格?改用 Vercel 要多做什麼?
你用到的是 Firebase 那一格 (自帶資料庫、即時、多人):Firebase Hosting 放網頁,Firestore 存留言。如果改用 Vercel ,因為 Vercel 不內建資料庫 ,你會需要「多接一個資料庫」:① 網頁照樣連 Firebase,只把網頁改放到 Vercel;或 ② 改用 Vercel 自己的資料庫並寫一點後端來存取。Vercel 部署網頁很快,但「資料存哪」要你自己決定並接上。
Q3|只做靜態自我介紹頁,選哪個?
選 GitHub Pages 。自我介紹頁是純展示、不用記資料、不用後端,GitHub Pages 就是為這種而生:免費、最簡單、推上去就有網址。用 Vercel 或 Firebase 也行、也免費,但它們的強項(後端、資料庫)你用不到,等於殺雞用牛刀。一句話:不用記資料、沒有後端,就選最簡單的 GitHub Pages。
本章重點回顧
部署 = 把網站從自家廚房搬到網路店面 ,上線有兩條路:連 GitHub 自動部署,或用指令直接從電腦上線。
觀念坑 :GitHub Pages 只放得了「靜態網站(海報)」,跑不動「全端(有廚房)」應用,要用 Vercel 或 Firebase 這類平台。
build(打包) :平台先把專案整理成正式版(前端壓成靜態檔、後端變成隨叫隨跑的小函式);本機與部署的工具要一致。
雲端保險箱要重設 :本機 .env.local 不上傳,雲端的環境變數要重新填一次。
上線必做 :實測完整流程,「網頁打得開」不等於「功能正常」;出狀況查四招:沒更新看快取、功能失敗看 Function Log、部署失敗看 Build Log、改壞了按 Rollback。