SUPABASE

Supabase
项目创建 & 密钥配置

使用开源 Firebase 替代品 Supabase 快速搭建后端的指南。 一次性配置 PostgreSQL、Auth、Storage、Realtime 与 Edge Functions。

免费套餐

2 个项目

付费升级

Pro $25/月起

所需信息

推荐 GitHub 账户

Overview

开始前请确认

Supabase 免费套餐在项目闲置 1 周后会被暂停。生产环境建议升级到 Pro 套餐($25/月起)以保持稳定。请务必在开始时启用 Row Level Security(RLS)—— 默认关闭状态下,所有数据都是公开可访问的。

GitHub 账户

Supabase 基于 GitHub OAuth。

区域选择

韩国用户选 Tokyo(ap-northeast-1)。

RLS 策略设计

Row Level Security 默认关闭。

两种密钥的区别

anon 与 service_role。

Step by Step

分步指南

01

SIGNUP

注册 & 创建组织

在 supabase.com 使用 GitHub 注册。

  • 推荐 Sign in with GitHub(邮箱也可)
  • 自动创建组织(Organization)—— 按团队聚合项目
  • 成员邀请按组织维度管理
  • 免费套餐: 每个组织 2 个项目
02

PROJECT

创建新项目

确定数据库与区域。

  • 点击 New Project
  • 项目名称(将作为 URL slug)
  • 设置强度高的 Database Password 并妥善保存
  • 区域: Northeast Asia(Tokyo)对韩国用户延迟最低
  • Pricing Plan: Free / Pro / Team
  • 配置耗时约 2–3 分钟
03

KEYS

确认 API 密钥

请清楚区分两种密钥的职责。

  • Settings > API 菜单
  • Project URL: https://${id}.supabase.co
  • anon public key: 可用于前端,受 RLS 保护
  • service_role key: 仅服务器使用,绕过 RLS,绝不可暴露
  • JWT Secret: 签发自定义令牌时使用
  • 在 .env.local 中保存 NEXT_PUBLIC_SUPABASE_URL / ANON_KEY
04

AUTH

Authentication 配置

开启登录方式。

  • Authentication > Providers 菜单
  • 邮箱(默认启用)、手机号、Google、Apple、Kakao 等
  • 每个 OAuth 提供方需单独配置(Client ID / Secret)
  • Redirect URL: https://${id}.supabase.co/auth/v1/callback
  • 自定义邮件模板(可本地化为中文等)
  • 查看速率限制(免费套餐按小时限流)
05

DATABASE

创建表与 RLS 策略

创建 Postgres 表并配置安全策略。

  • 使用 Table Editor 的 GUI 或在 SQL Editor 中执行 DDL
  • 新建表务必勾选 Enable RLS
  • RLS 策略示例: "auth.uid() = user_id"(仅本人可读)
  • 启用 Realtime — 订阅 INSERT / UPDATE / DELETE 事件
  • 配置外键关系(建议与 auth.users 关联)
06

STORAGE

Storage 存储桶配置

为文件上传创建存储桶。

  • Storage > New Bucket
  • 选择 Public / Private
  • Public: 任何人都可通过 URL 访问,适合头像等
  • Private: 仅认证用户可访问,通过 signed URL
  • 通过 RLS 策略控制上传 / 下载权限
  • 图片变换(image transformation)为 Pro 套餐功能
07

FUNCTIONS

部署 Edge Functions

用无服务器函数实现自定义 API。

  • 基于 Deno 运行时,支持 TypeScript
  • supabase init → supabase functions new my-func
  • supabase functions deploy my-func
  • 适合调用外部 API、复杂逻辑与 Webhook 处理
  • 环境变量通过 `supabase secrets set` 设置
  • 免费套餐额度: 每月 500K 次调用
08

OPS

邀请团队 & 备份

运营必备配置。

  • 在 Organization Settings > Team 邀请成员
  • 角色: Owner / Developer(更细粒度权限需 Pro 及以上)
  • Database > Backups: 每日自动备份
  • Free 套餐保留 7 天,Pro 保留 30 天
  • Point-in-time Recovery 需 Team 套餐及以上
  • 建议禁用自动 Postgres 升级

Pitfalls

常见卡点

未开启 RLS 便上线

关闭 Row Level Security 时,anon 密钥可读写所有表,这是数据泄露的首要原因。

service_role 密钥被前端暴露

service_role 是绕过 RLS 的管理员密钥,绝对不能加 NEXT_PUBLIC_ 前缀。

免费套餐自动暂停

闲置 1 周后项目会转为 paused,API 返回 404。生产环境必须使用 Pro。

区域不可变更

项目创建后区域无法更改,一旦选错必须新建项目并迁移。

Database Password 丢失

无法恢复,务必用密码管理器保存。否则只能新建项目。

嫌配置麻烦? 可以全权代办

JAICYLAB 承接的项目,从开发者账号配置到上线与运营全部包含在内。