SuperAPI AI 工具集

supabase-expert

编程与开发

查看项目

更新于 10-16 02:48

技能介绍

作用

supabase-expert 用于在构建 Supabase 应用时提供全面且准确的指导,覆盖数据库操作、身份认证、实时功能、文件存储、边缘函数、向量搜索与平台集成等。当用户提到 PostgreSQL、Postgres、SQL、数据库、表、查询、迁移、认证、登录、注册、OAuth、SSO、多因素、魔法链接、实时、订阅、WebSocket、实时数据、在线状态、广播、文件上传、文件存储、图片、S3、CDN、存储桶、边缘函数、无服务器、API、Deno、云函数、行级安全、RLS、策略、权限、访问控制、向量搜索、嵌入、pgvector、语义搜索、AI、RAG、Next.js、React、Supabase 客户端、hooks 等关键词时,适合调用该技能。

文档覆盖

官方 Supabase 文档位于 docs/supabase_com/,共 2,616 个 markdown 文件,包含完整指南、API 参考、客户端库与平台文档。文档需要单独拉取,命令为:

pipx install docpull docpull https://supabase.com/docs -o .claude/skills/supabase/docs

主要领域:

数据库:PostgreSQL、行级安全(RLS)、迁移、函数、触发器

认证:邮箱/密码、OAuth、魔法链接、SSO、MFA、手机认证

实时:数据库变更、广播、在线状态、频道

存储:文件上传、图片变换、CDN、存储桶

边缘函数:Deno 运行时、无服务器、全球部署

向量/AI:pgvector、嵌入、语义搜索、RAG

客户端库:JavaScript、Python、Dart(Flutter)、Swift、Kotlin

平台:CLI、本地开发、分支、可观测性

集成:Next.js、React、Vue、Svelte、React Native、Expo

如何使用文档

回答问题时,可先用 Grep 搜索相关文档:

grep -r "row level security" docs/supabase_com/ --include="*.md"

查找指南:

ls docs/supabase_com/guides_*

查看参考文档:

ls docs/supabase_com/reference_*

快速开始

安装:

npm install @supabase/supabase-js

初始化客户端:

import { createClient } from "@supabase/supabase-js";

const supabase = createClient( process.env.NEXT_PUBLIC_SUPABASE_URL!, process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!, );

环境变量:

NEXT_PUBLIC_SUPABASE_URL - 项目 URL(客户端安全)

NEXT_PUBLIC_SUPABASE_ANON_KEY - 匿名/公开密钥(客户端安全)

SUPABASE_SERVICE_ROLE_KEY - 管理密钥(仅服务端,绕过 RLS)

数据库操作

CRUD:支持 insert、select、update、delete、upsert,并可通过 .select()、.single() 等链式方法返回数据。

高级查询:支持关联查询(joins)、全文搜索(textSearch)、范围查询(gte/lt)、JSON 查询(contains)。

数据库函数:通过 supabase.rpc() 调用存储过程,并可与过滤、分页组合。

身份认证

支持邮箱/密码注册与登录、魔法链接(signInWithOtp)、手机/SMS 认证、OAuth 登录。支持的 OAuth 提供商包括 Google、GitHub、GitLab、Bitbucket、Azure、Apple、Discord、Facebook、Slack、Spotify、Twitch、Twitter/X、Linear、Notion、Figma 等。用户会话管理包括获取当前用户、获取会话、登出,以及通过 onAuthStateChange 监听 SIGNED_IN、SIGNED_OUT、TOKEN_REFRESHED 等事件。MFA 支持注册、校验和列出因子。

行级安全(RLS)

通过 ALTER TABLE ... ENABLE ROW LEVEL SECURITY 启用,使用 CREATE POLICY 创建针对 SELECT/INSERT/UPDATE/DELETE 的策略。可使用 auth.uid()、auth.jwt() 及 JWT 声明访问控制。示例涵盖公开读取、用户只能操作自己的帖子、以及基于订阅状态的条件访问。

实时订阅

可监听数据库变更(postgres_changes),支持 event 为 * 或 INSERT/UPDATE/DELETE,并可用 filter 过滤特定用户。支持广播(broadcast)与在线状态(presence)跟踪,包含 sync、join、leave 事件及 channel.track()。

存储

支持上传文件(含 base64)、下载、获取公开 URL、创建签名 URL(私有文件临时访问)、图片变换(width、height、resize、quality)以及列出文件(limit、offset、sortBy)。

边缘函数

通过 npm install -g supabase、supabase init、supabase functions new 创建,示例使用 Deno.serve 与 @supabase/supabase-js,可读取 Authorization 头获取用户、查询数据库并返回 JSON。部署使用 supabase functions deploy,调用使用 supabase.functions.invoke。

向量搜索(AI/ML)

启用 pgvector(CREATE EXTENSION vector),创建带 VECTOR(1536) 列的表并建立 HNSW 索引。可结合 OpenAI embeddings 存储嵌入,并通过 match_documents 函数进行相似度搜索(支持 match_threshold、match_count)。

Next.js 集成

包含 Server Components(createServerClient + cookies)、Client Components(createBrowserClient)以及中间件(middleware.ts)中进行认证保护与重定向的示例,使用 supabase.auth.getClaims() 检查用户。

限制

文档需单独拉取;环境变量、密钥与具体部署配置需开发者自行设置。关于收费、价格、效果或未在资料中出现的平台信息,暂未提供。