Supabase——一款开源的 Firebase 替代方案
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
Supabase是一个开源的 Firebase 替代方案,可为各种应用程序提供后端即服务 (BaaS)。它设置极其简单,并且可以与多种框架快速兼容运行。
特征
Supabase 具有以下高亮显示功能:
- 具备实时功能的 PostgreSQL,以及 PostgREST API
- 由Postgres RLS(行级安全性)管理的安全性和访问控制
- 支持使用 Magic Link 身份验证的多服务身份验证
- 文件存储
- Supabase 客户端库(Javascript、Python、Dart)
- 无服务器函数(即将推出)
它是如何运作的?
Supabase 的核心是一套开源工具,它们相互连接,旨在构建无缝的开发者体验:

来源:Supabase
项目
Supabase 项目是对您所有数据库、身份验证用户、策略、表和文件存储的封装。您可以从多个区域中选择项目托管位置,Supabase 官方也在不断增加新的托管区域,以降低延迟。
创建项目大约需要 2 分钟,所以去喝杯咖啡,坐下来放松一下吧。
项目仪表盘
项目创建完成后,您将看到如下所示的类似仪表板。
此仪表板包含有关您项目的所有详细信息,包括数据库连接、身份验证请求、存储空间、使用客户端库的实现等等。
表格创建器/编辑器
Supabase 使用关系型 PostgreSQL 作为数据库,具有实时功能和 Postgres RLS(行级安全性)策略访问控制。
Supabase 允许开发人员直接从仪表板创建表并添加列和属性。
Supabase 允许开发者直接从控制面板编辑数据。
验证
Supabase 支持多种身份验证提供商,例如 Google、GitHub、Facebook、Twitter、GitLab 等。这些提供商可通过身份验证面板启用。它还支持手机 OTP 身份验证和 Magic Link 身份验证。
用户通过 Supabase 进行身份验证后,身份验证控制面板上会显示用户的电子邮件地址和上次登录时间。
这个神奇链接运行流畅,允许用户无需密码即可登录/注册您的应用程序。
我最喜欢 Supabase 身份验证服务的一点是 RLS 策略功能。我们可以创建策略来限制用户对数据库表中数据的访问,防止他们进行更改或查看。
Supabase 也为我们的策略提供了一些预先编写好的模板。我们可以从中选择,也可以通过如下所示的 SQL 编辑器编写我们自己的自定义策略。
create policy "Users can only update their own items."
on items for update using (
auth.email() = email
);
上述查询设置的策略是,只有物品的所有者用户才能更新该特定物品。
贮存
Supabase 提供文件存储功能,并可选择为文件添加访问控制策略。
它提供了一个可公开访问的文件链接,以便可以共享或嵌入到前端应用程序中。
SQL 编辑器
Supabases 提供了一个开箱即用的在线 SQL 查询命令行界面 (CLI),因此我们无需使用 CLI 连接到数据库即服务 (DBAAS) 来运行查询。它甚至会保存您的查询,以便我们可以返回并查看之前运行的查询。
数据库
在数据库选项卡中,您可以编辑数据库架构、向数据库添加列、创建新表、删除表、更新数据库角色等。
您甚至可以修改数据库的连接池。
Alpha 功能
数据库的部分功能仍处于 Alpha 版本。
- 数据库触发器 - 触发器是当与表关联的事件发生时自动调用的函数。
- 函数 - 一组 SQL 和过程命令,例如声明、赋值、循环、控制流程等。
- 功能钩子
报告
Supabase 还能够为您的项目生成自定义报告。这些报告可以概括地展示您的网络流量、用户操作和基础设施运行状况。
API
Supabase 提供种类繁多的 API,用于用户身份验证、数据库、用户管理、存储管理等。这些 API 由匿名 API 密钥保护。
点击此处查看更多 API 参考信息。
客户端库
Supabase目前支持3种客户端语言:
- Javascript
- Python
- 镖
客户端 SDK 具备构建全栈应用程序所需的所有 Superbase 操作功能。
自托管
使用 Supabase,您甚至可以将 BAAS 部署在自己的服务器上。Supabase 的自托管版本目前不包含用户界面 (UI)。您可以使用 Supabase CLI 轻松完成自托管。要开始使用,请使用以下命令安装 CLI:
npm install -g supabase
点击这里了解更多关于Supabase自托管的信息。
Supabase会取代Firebase吗?
所以,你一直期待的问题就是这个,对此我的回答是“不!”。Supabase 和 Firebase 并非完全对应。虽然他们也开发了 Firebase 的许多功能,但他们的实现方式却截然不同。
Supabase 的技术选择与 Firebase 截然不同。Supabase 使用的所有技术都是开源的。
最值得注意的是,Supabase 使用的是 Postgres 而非 NoSQL 数据库。目前市面上没有任何其他数据库能够提供与 Firebase 真正竞争所需的扩展性和功能。这对所有希望使用 PostgreSQL 等关系型数据库的后端即服务 (BaaS) 的开发者来说无疑是一大福音。
但那些仍然偏爱 NoSQL 结构的人可以选择 Firebase,因为它提供了 NoSQL 存储的灵活性。
加入 Supabase
Supabase 最棒的地方在于它是开源的,代码在 GitHub 上公开提供,因此您可以轻松地为其做出贡献,并成为 Supabase 社区的一份子。
文章来源:https://dev.to/somsubhra1/supabase-an-opensource-firebase-alternative-51h4











