Supabase 是一个开源的后端平台,被定位为 Firebase 的开源替代方案,基于以下组件构建:
Postgres 数据库:完整的 SQL 数据库,配合 PostgREST API 自动生成 REST 接口。 身份验证(Authentication):内置认证,支持多种提供商。 存储(Storage):文件存储,并支持图片转换。 实时(Realtime):通过 WebSocket 订阅数据库变更。 Edge Functions:运行在 Deno 运行时上的无服务器函数。 行级安全(Row Level Security):使用 Postgres RLS 进行数据访问控制。
用途与适用场景
根据资料,该技能适用于:构建全栈应用;需要认证、数据库和存储时;需要实时订阅时;使用 Next.js、React 或 Vue 时。
主要能力
数据库操作:通过 PostgREST API 进行查询,支持选择、过滤(eq、gte、lte)、排序、分页(range)、关联查询、插入、更新、删除、upsert,以及全文搜索(textSearch)、数组包含(contains)、JSON 操作等高级查询,并可调用 Postgres 函数(rpc)。 认证:支持邮箱/密码注册登录、OAuth(github、google、gitlab、bitbucket、azure、discord、facebook、linkedin、notion、slack、spotify、twitch、twitter、apple 等)、魔法链接与 OTP 验证、手机 OTP 认证,以及通过 onAuthStateChange 监听认证状态变化、更新用户元数据与修改密码。 行级安全(RLS):在表上启用 RLS 并通过策略控制 SELECT、INSERT、UPDATE、DELETE,涵盖公开读、认证写、基于组织、基于角色、基于时间等常见模式,并提供 auth.uid()、auth.jwt() 等辅助函数。 存储:文件上传(含进度回调、从签名 URL 上传)、下载、获取公开 URL、创建签名 URL(临时访问)、列出文件、删除、移动文件,以及图片转换(宽度、高度、resize cover|contain|fill、质量、格式)。存储同样支持 RLS 策略。 实时订阅:订阅数据库的 INSERT、UPDATE、DELETE 或所有变更(可加过滤器),使用 Presence 跟踪在线用户、使用 Broadcast 发送消息,并可取消订阅。 Edge Functions:在 Deno 运行时创建、本地服务和部署无服务器函数,函数内可校验用户并访问数据库,客户端可通过 functions.invoke 调用(可带认证头)。
使用方式
项目设置:在 Supabase 控制台创建项目;安装客户端 npm install @supabase/supabase-js;开发时可安装 CLI:npm install -D supabase;TypeScript 类型:npm install -D @supabase/supabase-js。 客户端初始化:使用环境变量中的 URL 与 anon key 调用 createClient 创建实例,并可传入 Database 类型以获得类型支持。 Next.js 集成:资料给出了 App Router 下的配置方式,分别为客户端组件(createBrowserClient)、服务端组件(createServerClient 配合 cookies)以及中间件(updateSession)提供示例。 Edge Function 命令:supabase functions new my-function;supabase functions serve;supabase functions deploy my-function。
限制与暂未提供的信息
资料未提供收费、价格、平台可用性或效果相关的说明,这些内容暂未提供。资料仅以代码示例描述 API 用法,未包含完整的策略清单、配额或性能指标。