iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
自我挑戰組

我獨自開發 - Supabase 打造全端應用系列 第 9 篇

第九關 - 有效操控暗影士兵:Supabase AI 提示詞

  • 分享至 

  • xImage
  •  

封面

什麼是 AI 提示詞?

身為開發者,我們經常需要查閱文件、思考最佳實踐,還要處理各種技術細節。而 Supabase 官方提供專門開發 Supabase 應用的 AI 提示詞(AI Prompts),讓 AI 也能查閱文件,能更準確地理解你的需求,提供更精確的 Supabase 相關協助。

簡單來說

就像聘請一個新員工時,會給他一份詳細的工作手冊一樣,聘請 AI 助手也是一樣:

  • 專業領域:這裡是 Supabase 開發
  • 工作標準:如何撰寫高品質的程式碼
  • 最佳實踐:遵循什麼樣的開發規範

為什麼需要使用 AI 提示詞?

在沒有提示詞的情況下,AI 助手可能會:

  • 給出通用的解決方案,而非 Supabase 特定的最佳實踐
  • 使用過時的語法或方法
  • 忽略重要的安全考量(如 RLS 政策)
  • 產生不符合專案風格的程式碼

有專業的提示詞,AI 助手就能:

  • 精準理解需求:知道你在使用 Supabase 開發
  • 遵循最佳實踐:自動應用 Supabase 的建議做法
  • 保持一致性:產生符合專案風格的程式碼
  • 提高效率:減少來回修正的時間

如何使用 AI 提示詞

第一步:選擇合適的 AI 工具

目前主流的 AI 開發工具都支援提示詞功能:

Cline

  • 在 Manage Cline Rules & Workflows 中新增提示詞
  • 使用 @add-file 指令來引用提示詞檔案

Cursor

  • 將提示詞加入為 專案規則
  • 在專案根目錄建立 .cursorrules 檔案

GitHub Copilot

  • 使用 #<檔案名稱> 來引用提示詞檔案
  • 在對話中直接引用提示詞內容

第二步:下載並設定提示詞

Supabase官方文件 提供常用的提示詞的內容。

  1. 複製提示詞內容到你的專案中
  2. 建立專用檔案(如 supabase-prompts.md)
  3. 在 AI 工具中引用這個檔案

第三步:開始使用

當你需要 AI 協助時,只要在對話中提及相關的提示詞檔案,AI 就會按照這些指引來協助你。

常用的提示詞

1.

Next.js + Supabase 認證應用

使用場景:快速建立一個具備完整認證功能的 Next.js 應用

提示詞:

建立一個 Next.js 應用,整合 Supabase 認證功能,包含:
- 使用者註冊/登入頁面
- 使用者資料顯示
- 登出功能

AI 會自動處理的關鍵點:

  • 明確角色: You are an expert in Supabase and Next.js. 告訴 AI 它的專業領域,有助於生成更專業的回答
  • App Router 結構:使用最新的 Next.js 13+ 路由方式
  • Supabase 客戶端設定:正確配置瀏覽器和伺服器端客戶端
  • TypeScript 支援:提供完整的型別定義

2.

資料庫 RLS 政策建立

使用場景:為資料表建立安全的行級安全政策

提示詞:

為 [資料表名稱] 建立 RLS 政策

AI 會自動處理的關鍵點:

  • 安全性:預設採用最嚴格的安全設定,使用 auth.uid() 進行身份驗證,使用者只能存取自己的資料
  • CRUD 操作:涵蓋所有必要的資料庫操作,包含 SELECT、INSERT、UPDATE、DELETE 政策

3.

Edge Functions 開發

使用場景:建立 Supabase Edge Functions 處理伺服器端邏輯

提示詞:

建立一個 Supabase Edge Function,功能包含:[具體功能描述]

AI 會自動處理的關鍵點:

  • Deno 環境:使用正確的 Deno 語法和 API,TypeScript 型別
  • HTTP 處理:CORS 設定,標準的請求/回應處理模式
  • 安全性:適當的輸入驗證和錯誤處理

4.

資料庫遷移檔案建立

使用場景:建立標準化的資料庫遷移檔案,管理資料庫結構變更

提示詞:

建立一個 Supabase 資料庫遷移檔案,包含:[具體的資料庫變更需求]

AI 會自動處理的關鍵點:

  • 標準命名格式:遵循 YYYYMMDDHHmmss_description.sql 命名格式,自動產生符合 Supabase 規範的檔案名稱(如:20240906123045_create_users_table.sql)
  • 安全優先設計:自動為新資料表啟用 RLS,即使是公開存取的資料表
  • 完整的政策設定:為每個操作(SELECT、INSERT、UPDATE、DELETE)和角色(anon、authenticated)建立獨立政策
  • 詳細註解:包含遷移目的、影響範圍、特殊考量等完整說明
  • PostgreSQL 最佳實踐:使用小寫 SQL 語法,遵循 Supabase 建議的資料庫設計模式

如何提出問題的格式說明:把人類當作 AI

在使用 AI 時,可能會遇到一些問題,為了讓 AI 更有效地理解你的需求,可以使用建議格式來輔助,這樣不僅能幫助 AI 更快地定位需求,也能提高獲得解決方案。

而當你遇到問題需要協助時,可以參考以下格式來描述問題,就像給 AI 提示一樣,這樣其他開發者或團隊成員,也能更快地理解你的需求,這個道理就像是給 AI 一個清晰的「工作說明書」。

問題描述模板

## 問題概述
[簡短描述你遇到的問題]

## 環境資訊
- Supabase 版本:[版本號]
- 框架:[Next.js/React/Vue 等]
- 瀏覽器:[Chrome/Safari 等]
- 作業系統:[Windows/macOS/Linux]

## 預期行為
[描述你期望發生什麼]

## 實際行為
[描述實際發生了什麼]

## 重現步驟
1. [第一步]
2. [第二步]
3. [第三步]

## 相關程式碼
[貼上相關的程式碼片段]

## 錯誤訊息
[如果有錯誤訊息,請完整貼上]

## 已嘗試的解決方法
- [方法一]
- [方法二]

提問技巧

  1. 具體明確:避免模糊的描述,提供具體的使用場景
  2. 包含脈絡:說明你想達成的整體目標
  3. 提供範例:如果可能,提供相關的程式碼片段

良好提問範例

❌ 不好的提問:
「我的 Supabase 不能用,怎麼辦?」

✅ 好的提問:
「我在 Next.js 專案中使用 Supabase 認證,使用者登入後重新整理頁面會回到登入頁面。我使用的是 App Router,已經設定了 middleware.ts,但 auth.getUser() 在伺服器端似乎無法正確取得使用者資訊。」

可以參考開源專案中提交 Bug Report 的格式,例如 Supabase 社群的 GitHub Issue 模板

這是針對 Bug Report 的模板,但其背後的邏輯提供足夠的上下文、明確的目標和預期的結果是通用的。

小結

善用這些提示詞,配合開發經驗和判斷,就能大幅提升 Supabase 開發的效率和品質。

... to be continued

有任何想討論歡迎留言,或需要指正的地方請鞭大力一點,歡迎訂閱、按讚加分享,分享給想要提升開發效率的朋友~


上一篇
第八關 - 召喚暗影士兵:Supabase MCP
下一篇
第十關 - 快速建立地下城:Supabase UI Library
系列文
我獨自開發 - Supabase 打造全端應用 共 31 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言