Supabase 是什么
本教程面向有前端基础(会 JavaScript、会用 Vue 或 Nuxt)但没有后端经验的读者。目标只有一句话,让你不用写一行后端代码,也能做出带用户系统、数据库、文件上传的完整产品。
什么是 Supabase
Supabase 是一个 BaaS(Backend as a Service,后端即服务)平台。通俗讲,它替你托管了一整套后端服务,包括 PostgreSQL 数据库、用户认证、文件存储和实时推送。
你不需要买服务器、不需要配环境、不需要写接口,注册账号后直接在网页上创建项目,拿到一串配置信息,前端代码就能开始读写数据库。
装修好的办公室
独立开发者最常问的问题就是,为什么不自己写后端。用”装修好的办公室”来理解最直观
| 自建后端 | Supabase |
|---|---|
| 租毛坯房,自己买服务器、装系统 | 拎包入住 |
| 自己改水电,配置数据库环境 | 数据库开箱即用 |
| 自己刷墙,从零写注册登录功能 | 认证系统点几下就开启 |
| 自己买家具,写增删改查接口 | 前端一行代码直接查数据库 |
| 自己装门锁,处理接口安全 | 行级安全策略集中配置 |
自己装修办公室不是不行,但对于个人项目和独立开发者,时间应该花在产品功能上,而不是重复造轮子。
五大核心服务
Supabase 提供的服务中,本教程只深入讲最常用的五个
| 服务 | 用途 | 本教程章节 |
|---|---|---|
| Database | PostgreSQL 关系型数据库,存一切业务数据 | 第 03-05 篇 |
| Auth | 用户注册登录、第三方账号登录 | 第 06-07 篇 |
| Row Level Security | 行级安全策略,数据库的安全核心 | 第 08 篇 |
| Storage | 文件存储,头像图片等静态文件 | 第 10 篇 |
| Realtime | 数据变化实时推送给前端 | 第 11 篇 |
还有 Edge Functions(边缘函数)和数据库函数等进阶能力,入门阶段先了解存在即可。
与自建后端对比
| 维度 | 自建后端 | Supabase |
|---|---|---|
| 服务器费用 | 每月几十到几百元 | 免费计划即可起步 |
| 开发周期 | 认证、接口、部署全部自己写 | 注册当天就能跑通 |
| 数据库 | 自己装 MySQL 或 PostgreSQL | 托管 PostgreSQL,自带管理界面 |
| 实时功能 | 自己实现 WebSocket | 一行代码订阅 |
| 扩容 | 自己操心 | 平台负责 |
| 灵活性 | 想写什么写什么 | 受平台能力限制 |
对独立开发者来说,Supabase 大约能省下 70% 的后端工作量,这也是它 2021 年发布后迅速流行的原因。
与 Firebase 对比
提到 BaaS 就绕不开 Firebase,它是最早把 BaaS 做火的产品,Supabase 常被称为”Firebase 开源替代方案”。两者最大区别在于底层数据库
| 维度 | Firebase | Supabase |
|---|---|---|
| 数据库 | NoSQL 文档数据库(Firestore) | PostgreSQL 关系型数据库 |
| 查询方式 | 依赖 SDK 链式调用 | 标准 SQL 全部可用 |
| 数据关系 | 关联查询较弱 | 外键、多表联查是强项 |
| 数据迁移 | 换平台基本要重写 | 随时导出标准数据库文件 |
| 开源 | 闭源 | 完全开源,可自部署 |
对于做过传统开发、习惯 SQL 的开发者,Supabase 的入门成本更低。对于简单的 JSON 存储需求,Firebase 也很顺手,两者没有绝对优劣。
适合谁用
- 独立开发者,想快速把想法做成产品
- 前端开发者,想补全后端能力但不打算深入学习
- 学习 PostgreSQL 的初学者,Supabase 有现成的网页数据库界面
- 做课程、做 Hackathon 项目的学生团队
不适合的场景是超大规模数据、对数据主权有强要求的企业,以及需要复杂业务逻辑的中大型系统,这些场景 Supabase 也可以,但已经不是最优解。
学习路线
本教程共 12 篇,建议按顺序学习,每篇都建立在上一篇的基础上
| 章节 | 主题 |
|---|---|
| 第 02 篇 | 注册账号并创建第一个项目 |
| 第 03 篇 | 数据建模,创建第一张表 |
| 第 04-05 篇 | 增删改查,用前端读写数据库 |
| 第 06-07 篇 | 用户认证,邮箱密码和第三方登录 |
| 第 08 篇 | 行级安全策略,数据库安全核心 |
| 第 09-11 篇 | 关联查询、文件存储、实时订阅 |
| 第 12 篇 | 综合实战,把所有能力串起来 |
下一篇 Supabase 环境搭建