Skip to content

参考:Supabase 速查、对比与易错点

基于 Supabase · 核于 2026-08

速查

  • 定位:开源 Postgres BaaS,Firebase 的开源替代;核心是真 Postgres + 即时 API + Auth + RLS + Realtime + Storage + Edge Functions。
  • 数据库:托管 Postgres(独立实例),保留事务/外键/JOIN/扩展(pgvector/PostGIS/pg_cron),可 psql 直连。
  • 即时 API:PostgREST 自动生成 REST;pg_graphql 自动生成 GraphQL;跟着 schema 变。
  • Auth:邮箱/魔法链接/社交(OAuth)/企业 SSO(SAML/OIDC)/手机 OTP/匿名;签发 JWT。
  • RLS:Postgres 原生行级安全,开启后默认全拒绝,写 Policy(using/with check)放行;auth.uid() 读 JWT 用户。
  • Realtime:Postgres Changes(消费 WAL)+ Presence + Broadcast,基于 WebSocket,受 RLS 约束。
  • Storage:S3 兼容对象存储,访问权限由 RLS 策略保护(public/private 桶 + 签名 URL)。
  • Edge Functions:Deno 运行时 + 全球 CDN 边缘节点(Deno Deploy),TS 原生,毫秒级冷启动。
  • 开源/自托管:全组件开源,官方云与自托管同代码,无厂商锁定。
  • 规模:120 万+ 开发者,300% 增长。

一、Supabase vs Firebase 全维度对比

维度SupabaseFirebase
数据库类型关系型 Postgres(SQL)文档型 NoSQL(Firestore)/ 键值(Realtime DB)
数据模型表/行/列,严格 schema、外键集合/文档,无 schema、层级文档
JOIN✅ 原生 SQL JOIN、嵌套展开❌ 无 JOIN,需多次查询或冗余
事务✅ ACIDFirestore 有有限事务;Realtime DB 原子写
复杂查询✅ SQL(聚合/窗口/CTE)❌ 查询能力弱(无 !=、深度受限)
向量/AI✅ pgvector(RAG/语义检索)需另接向量库
API自动 REST(PostgREST)+ GraphQLSDK 封装(无原生 REST/GraphQL)
即时 API建表即生成,跟 schema 变无,需手写
认证邮箱/社交/OAuth/SSO/匿名/OTP邮箱/社交/匿名/手机/SSO
权限模型RLS(Postgres 行级安全)+ PolicySecurity Rules(另写一套)
权限表达SQL(统一在数据库一层)规则 DSL(与数据查询分离)
实时Realtime(Postgres Changes/Presence/Broadcast)Firestore/Realtime DB 原生实时
实现机制逻辑复制消费 WAL → WebSocket监听文档变更 → WebSocket
存储S3 兼容,受 RLS 保护Cloud Storage(GCS)
签名 URL✅ 限时签名 URL✅ 限时签名 URL
函数Edge Functions(Deno,全球边缘)Cloud Functions(Node/Python 等,区域)
运行时Deno(TS 原生)Node 为主,多语言
部署位置全球 CDN 边缘(Deno Deploy)单区域
冷启动毫秒级百毫秒级(Node)
开源全开源、可自托管闭源,锁定 Google Cloud
厂商锁定低(同代码可迁)
免费层无限 API 请求、500MB DB、1GB 存储、50k MAUFirestore 按读写计次、有限免费额度
项目暂停免费层 7 天无活动会暂停不暂停(但超额收费)
背靠独立公司 + YC + 开源社区Google
强项中后台/SaaS/复杂关系/需 SQL/可自托管移动端/快速原型/层级文档/Google 生态

二、定价对比

Supabase 免费层Supabase Pro($25/月)Firebase(Spark 免费)
项目数281 项目多库
API/读写无限无限Firestore 5万读/2万写/天
数据库容量500MB8GBFirestore 1GB 存储
存储1GB100GB5GB(GCS)
月活用户50k100k无限(认证免费)
函数调用500k/月2M+ 起Cloud Functions 2M/月
函数流量500MB250GB按量
实时并发200 连接500+按连接数计费
PITR
超额暂停/限流按量计费按量计费(账单易超)

核心差异:Supabase 免费层不限 API 调用次数(只限数据库/存储容量与函数额度);Firebase 免费层读写次数有限,超了立即收费,流量大的应用账单不可控。

三、产品矩阵

产品作用底层/开源组件对标 Firebase
Database托管 PostgresPostgreSQLFirestore / Realtime DB
Auth身份认证Supabase Auth(GoTrue)Firebase Authentication
即时 API自动 REST + GraphQLPostgREST + pg_graphql无(无原生 API)
Realtime实时订阅Supabase Realtime(Phoenix Channels)Realtime DB
Storage对象存储S3 兼容 + Storage APICloud Storage
Edge Functions无服务器函数Deno + Deno DeployCloud Functions
Vector(pgvector)向量检索/AIpgvector 扩展需另接 Vertex AI
Cron定时任务pg_cron 扩展Cloud Scheduler

四、易错点清单

  • "Supabase 数据库是 NoSQL":错。它是真正的 Postgres(关系型),支持 SQL/JOIN/事务/外键;NoSQL 的是 Firebase。
  • "开了 RLS 就安全了":错。开启 RLS 后默认全拒绝,但如果你写了 using (true) 这种放行策略,等于没开。安全靠正确的 Policy,不是"开了 RLS"本身。
  • "RLS 能替代所有后端鉴权":部分错。简单行级权限 RLS 很合适;但复杂权限(层级继承、多对多动态授权、跨表聚合鉴权)在 RLS 里写 SQL 极绕,应写 RPC 函数过程式判断。
  • "即时 API 等于零代码后端":错。简单 CRUD 是;复杂 JOIN/聚合/事务仍需直接写 SQL 或 RPC,并非完全免代码。
  • "Edge Functions 就是 Lambda":差异大。Edge Functions 跑在全球边缘(Deno Deploy)就近执行、毫秒冷启动;Lambda 是单区域、冷启动更慢。Edge 不适合长任务(超时短)。
  • "Storage 权限和数据库无关":错。Storage 的访问也由 RLS 策略保护(对 storage.objects 表写 Policy),与行级权限是同一套机制。
  • "Realtime 推送不受 RLS 约束":错。Realtime 推送同样按 RLS 过滤,客户端只收到它有权读的行的变更。
  • "自托管 Supabase 等于零运维":错。Postgres/Realtime/Storage/Auth/Edge 多组件编排、升级、备份、安全仍要自己管,比托管版累得多。
  • "免费层项目永久在线":错。免费项目 7 天无活动会被暂停(数据保留,可唤醒);生产应用要上 Pro。
  • "Supabase 完全免费":免费层不限 API 调用,但数据库容量、存储、函数额度、并发连接都有限,超额要升级或按量付费。
  • "pgvector 只是装个扩展":要真正做向量检索还需建向量索引(HNSW/IVFFlat)、选距离度量(余弦/内积/L2)、控制维度,否则大数据量下慢。

五、进阶方向(链接其他叶)

权威链接