Supabase是一种开源 Firebase 替代方案,为各种应用程序提供后端即服务。它非常容易设置并使用多个框架快速运行。

特点

Supabase 具有以下突出特点:

  • 具有实时功能和 PostgREST API 的 PostgreSQL

  • Postgres RLS(行级安全)管理的安全和访问控制

  • 支持Magic Link认证的多服务认证

  • 文件存储

  • Supabase 客户端库(Javascript、Python、Dart)

  • 无服务器函数(即将推出)

它是如何工作的?

Supabase 的核心是一套开源工具,它们组合在一起以构建无缝的开发人员体验:

[内部结构](https://res.cloudinary.com/practicaldev/image/fetch/s--VnaQAxIJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/iia440lw66u2qbooom43.png)

来源:Supabase

项目

Supbase 中的项目是所有数据库、身份验证用户、策略、表、文件存储的包装器。有多个区域可供您选择托管项目的位置,Supabase 官员不断增加更多位置以减少延迟。

[Supabase 项目创建](https://res.cloudinary.com/practicaldev/image/fetch/s--5u2zcWAS--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to -uploads.s3.amazonaws.com/uploads/articles/pd43u8tyezf6ops85rxm.png)

一个项目创建大约需要 2 分钟才能完成,所以喝杯咖啡,坐下来放松一下。

项目仪表板

创建项目后,您将看到一个类似的仪表板,如下所示。

[Supabase 仪表板](https://res.cloudinary.com/practicaldev/image/fetch/s--t6_XZgV0--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/b0mff88ha7gd4hrm9f1b.png)

此仪表板包含有关您的项目的所有详细信息,包括您的数据库连接、身份验证请求、存储空间、使用客户端库的实现等等。

表格创建者/编辑器

Supbase 使用关系型 PostgreSQL 作为数据库,具有实时功能和 Postgres RLS(行级安全)的策略访问控制。

Supbase 允许开发人员直接从仪表板创建表并添加列和属性。

[Supabase 表创建](https://res.cloudinary.com/practicaldev/image/fetch/s--peiKgyYG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to -uploads.s3.amazonaws.com/uploads/articles/rzztvby4v9tuhae8wude.png)

Supbase 允许开发人员直接从仪表板编辑数据。

[Supabase 表管理器](https://res.cloudinary.com/practicaldev/image/fetch/s--rf1w23_9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to -uploads.s3.amazonaws.com/uploads/articles/l2397tflqdac4xezn359.png)

认证

Supbase 拥有广泛的身份验证提供程序,例如 Google、GitHub、Facebook、Twitter、GitLab 等。这些可以通过身份验证面板启用。它还支持电话 OTP 身份验证和 Magic Link 身份验证。

[身份验证提供程序](https://res.cloudinary.com/practicaldev/image/fetch/s--1muN8Ddr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/cydh135dlev702uzqn23.png)

一旦用户通过 Supabase 进行身份验证,它就会在 Auth Dashboard 上显示用户的电子邮件、上次登录时间。

[认证面板](https://res.cloudinary.com/practicaldev/image/fetch/s--rat8o5kT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/gve3y7x5hwutadzfbiil.png)

魔术链接无缝工作,允许用户在没有密码的情况下登录/注册您的应用程序。

[魔力链接](https://res.cloudinary.com/practicaldev/image/fetch/s--SPijnC8X--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/lly0rmc4ouafdthdhj7o.png)

我最喜欢 Supbase 身份验证服务的是 RLS 策略功能。我们可以创建策略来限制用户访问数据库中的表进行更改或查看数据。

[RLS 策略](https://res.cloudinary.com/practicaldev/image/fetch/s--8NttIVXc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/9unplkiz13k22q8wkl4o.png)

Supabase 还为我们的政策提供了一些预先编写的模板。我们可以从中选择或通过 SQL 编辑器编写我们自己的自定义策略,如下所示。

create policy "Users can only update their own items."
  on items for update using (
    auth.email() = email
  );

进入全屏模式 退出全屏模式

上述查询以这样一种方式设置策略,即只有作为项目所有者的用户才能更新该特定项目。

存储

Supbase 提供文件存储功能,还可以选择向文件添加访问控制策略。

[桶创建](https://res.cloudinary.com/practicaldev/image/fetch/s--kG4QPkmu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/2qj0vkgs6w9dcifpaogq.png)

[存储仪表板](https://res.cloudinary.com/practicaldev/image/fetch/s--2BJyARVa--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/zvclt8s7srml41apbyul.png)

它提供了一个可公开访问的文件链接,以便可以在前端应用程序中共享或嵌入。

SQL 编辑器

Supabases 提供了一个开箱即用的在线 SQL 查询 CLI,因此我们不需要使用 CLI 连接到 DBAAS 来运行我们的查询。它甚至可以保存您的查询,以便我们可以返回并检查我们之前运行的查询。

[SQL 查询](https://res.cloudinary.com/practicaldev/image/fetch/s--AqRoKAYQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/l3uadjog066ys1if509y.png)

数据库

从数据库选项卡中,您可以编辑数据库模式、向数据库添加列、创建新表、删除表、更新数据库角色等。

[数据库管理器](https://res.cloudinary.com/practicaldev/image/fetch/s--ORX9UXTH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to- uploads.s3.amazonaws.com/uploads/articles/j6teaa55t9hq4efqx734.png)

您甚至可以修改数据库的连接池。

阿尔法特性

一些数据库功能仍处于 Alpha 版本。

  • 数据库触发器 - 触发器是每当与表关联的事件发生时自动调用的函数。

  • 函数 - 一组 SQL 和过程命令,例如声明、赋值、循环、控制流等。

  • 功能挂钩

报告

Supabase 还能够为您的项目生成自定义报告。它们对您的网络流量、用户操作和基础架构运行状况提供了高级概述。

API

Supabase 为用户身份验证、数据库、用户管理、存储管理等提供了广泛的 API。这些 API 由匿名 API 密钥保护。

在此处查看更多关于 API 参考的信息。

客户端库

Supbase 目前支持 3 种客户端语言:

  • Javascript

  • 蟒蛇

  • 飞镖

客户端 sdk 具有 supabase 操作构建全栈应用程序所需的所有功能。

自托管

使用 Supabase,您甚至可以在自己的服务器上自行托管 BAAS。 Supabase 的自托管版本尚不包含 UI。它可以使用 Supbase CLI 轻松自托管。要开始使用以下命令安装 CLI:

npm install -g supabase

进入全屏模式 退出全屏模式

在此处阅读有关自托管 Supabase的更多信息。

Supabase 会取代 Firebase 吗?

所以你一直期待的问题是这个,我会直接回答**“NO!”**。 Supabase 不是 Firebase 的一对一映射。虽然他们正在构建 Firebase 提供的许多功能,但他们并没有以同样的方式进行。

技术选择与 Firebase 完全不同。 Supabase 使用的一切都是开源的。

最值得注意的是,Supabase 使用 Postgres 而不是 NoSQL 存储。目前市场上没有其他数据库提供与 Firebase 合法竞争所需的可扩展性和功能。这对于所有想要使用 PostgreSQL 等关系数据库的后端即服务 (BAAS) 的开发人员来说是一个福音。

但是那些仍然喜欢 NoSQL 结构的人可以选择 Firebase,因为它提供了 NoSQL 存储的灵活性。

成为 Supabase 的一员

Supabase 最美妙的地方在于它是开源的,并且代码可以在 GitHub 上公开获得,因此您可以轻松地为它做出贡献并成为 Supabase 社区的一部分。

GitHub

不和谐

Logo

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!

更多推荐