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 打造全端應用9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言