SuperAPI AI 工具集

supabase-patterns

数据与分析

查看项目

更新于 10-16 05:07

技能介绍

用途:为 Supabase 项目提供开发模式决策参考,聚焦客户端初始化、行级安全(RLS)策略与边缘函数。

主要能力与用法:

  1. 客户端初始化:区分服务端与浏览器端。服务端使用 @supabase/ssr 的 createServerClient,通过 cookies 传递会话;浏览器端使用 createBrowserClient。提供决策矩阵:服务端组件取数、服务端动作写入、路由处理器做 API、客户端组件做实时交互、中间件做认证检查。
  2. 行级安全:先执行 ALTER TABLE ... ENABLE ROW LEVEL SECURITY 启用 RLS,再按 SELECT/INSERT/UPDATE/DELETE 分别创建策略,用 auth.uid() = user_id 限制本人数据。多租户可基于 org_members 做组织级与角色级访问控制。
  3. 查询模式:基础 CRUD 使用 .from().select().eq().order();关联查询用外键嵌入语法;写入用 upsert(指定 onConflict);跨操作事务用 rpc 调用数据库函数。
  4. 边缘函数:位于 supabase/functions/<name>/index.ts,用 Deno 的 serve 与 esm.sh 引入 @supabase/supabase-js,从 Authorization 头构造带用户 JWT 的客户端,RLS 自动生效。
  5. 实时:用 supabase.channel(...).on('postgres_changes', ...) 订阅变更,并在组件卸载时 removeChannel 清理。

限制与注意事项:资料给出反模式清单,包括未启用 RLS、在浏览器使用 service role 密钥(绕过 RLS,应改用 anon key)、无过滤的 SELECT *、忽略错误、RLS 中认证字段缺少索引导致查询变慢。另建议检查 RLS 是否启用与查看策略,并提供 is_org_member 辅助函数示例。资料未提供具体安装命令、收费或平台信息。