
Supabase
是一个开源的 Firebase 替代品,它提供了一个实时的数据库、身份验证、存储和即时 API。它旨在为开发者提供一个完整的后端解决方案,而无需自己从头开始构建。Supabase 是一个托管平台,你可以注册使用 Supabase,而无需安装任何软件,因为其是开源的,所以也可以自托管和本地开发。

Supabase 基于流行的开源工具,如 Postgres、PostgREST、Realtime 和 GoTrue,为开发者提供了一个强大、灵活且易于使用的后端平台。
-
PostgreSQL
是一个对象关系型数据库系统,经过 30 多年的积极开发,它在可靠性、功能健壮性和性能方面赢得了很好的声誉。 -
Realtime
是一个 Elixir 服务器,允许你使用 WebSocket 监听 PostgreSQL 的插入、更新和删除。Supabase 监听 Postgres 的内置复制功能,将复制的字节流转换为 JSON,然后通过 WebSocket 广播 JSON。 -
PostgREST
是一个 Web 服务器,可以将你的 PostgreSQL 数据库直接生成 RESTful API -
Storage
提供了一个 RESTful 接口,用于管理存储在 S3 中的文件,使用 Postgres 来管理权限。 -
postgres-meta
是一个 RESTful API,用于管理你的 Postgres,允许你获取表、添加角色和运行查询等。 -
GoTrue
是一个基于 SWT 的 API,用于管理用户和发布 SWT 令牌。 -
Kong
是一个云原生 API 网关。
核心功能

-
实时数据库:Supabase 使用 PostgreSQL 作为其主要数据库,支持实时订阅。这意味着当数据发生变化时,您的应用可以即时接收到更新,无需进行任何额外的轮询或请求。 -
身份验证:GoTrue 提供了一个完整的身份验证解决方案,支持电子邮件、密码、第三方身份验证提供商和多因素身份验证。 -
存储:Supabase 提供了一个对象存储解决方案,允许您存储和管理文件,如图片、视频和文档。 -
即时 API:使用 PostgREST,您可以直接从 Postgres 数据库生成 RESTful API,无需编写任何后端代码。
安装
由于 Supabase 相关的依赖项非常多,因此我们建议您使用 Docker 来安装它,特别是基于 Kubernetes 平台的安装可以直接使用社区提供的 Helm Chart:https://github.com/supabase-community/supabase-kubernetes
。
如果你已经有一个 Kubernetes 集群了,则可以按照下面的方式来快速安装 Supabase:
# Clone Repository
$ git clone https://github.com/supabase-community/supabase-kubernetes
# Switch to charts directory
$ cd supabase-kubernetes/charts/supabase/
# Create JWT secret
$ kubectl -n default create secret generic demo-supabase-jwt
--from-literal=anonKey='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICAgInJvbGUiOiAiYW5vbiIsCiAgICAiaXNzIjogInN1cGFiYXNlIiwKICAgICJpYXQiOiAxNjc1NDAwNDAwLAogICAgImV4cCI6IDE4MzMxNjY4MDAKfQ.ztuiBzjaVoFHmoljUXWmnuDN6QU2WgJICeqwyzyZO88'
--from-literal=serviceKey='eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICAgInJvbGUiOiAic2VydmljZV9yb2xlIiwKICAgICJpc3MiOiAic3VwYWJhc2UiLAogICAgImlhdCI6IDE2NzU0MDA0MDAsCiAgICAiZXhwIjogMTgzMzE2NjgwMAp9.qNsmXzz4tG7eqJPh1Y58DbtIlJBauwpqx39UF-MwM8k'
--from-literal=secret='abcdefghijklmnopqrstuvwxyz123456'
# Create SMTP secret
$ kubectl -n default create secret generic demo-supabase-smtp
--from-literal=username='your-mail@example.com'
--from-literal=password='example123456'
# Create DB secret
$ kubectl -n default create secret generic demo-supabase-db
--from-literal=username='postgres'
--from-literal=password='example123456'
# Install the chart
$ helm -n default install demo -f values.example.yaml .
第一次部署可能需要一些时间才能完成(尤其是身份验证服务),您可以使用以下命令查看 Pod 的状态:
$ kubectl -n default get pod
NAME READY STATUS RESTARTS AGE
demo-supabase-auth-78547c5c8d-chkbm 1/1 Running 2 (40s ago) 47s
demo-supabase-db-5bc75fbf56-4cxcv 1/1 Running 0 47s
demo-supabase-kong-8c666695f-5vzwt 1/1 Running 0 47s
demo-supabase-meta-6779677c7-s77qq 1/1 Running 0 47s
demo-supabase-realtime-6b55986d7d-csnr7 1/1 Running 0 47s
demo-supabase-rest-5d864469d-bk5rv 1/1 Running 0 47s
demo-supabase-storage-6c878dcbd4-zzzcv 1/1 Running 0 47s
如果您仅使用 value.example.yaml
文件,则可以使用以下端点访问 API 或 Studio 应用程序:
-
http://api.localhost
-
http://studio.localhost
如何开始使用 Supabase
Supabase 提供了丰富的客户端库,支持多种编程语言,只需选择适合您的库,然后按照文档进行集成。
实时数据库
Supabase 使用 Postgres 作为其主要数据库,支持实时订阅。这意味着当数据发生变化时,您的应用可以即时接收到更新。
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(255),
email VARCHAR(255)
);
身份验证
Supabase 提供了一个完整的身份验证解决方案,支持电子邮件、密码、第三方身份验证提供商和多因素身份验证。
const { user, session, error } = await supabase.auth.signIn({
email: "example@email.com",
password: "example-password",
});
存储
您可以轻松地存储和管理文件,如图片、视频和文档。
const { data, error } = await supabase.storage
.from("avatars")
.upload("avatar1.jpg", fileInput.files[0]);
即时 API
使用 PostgREST,您可以直接从 Postgres 数据库生成 RESTful API。
const { data, error } = await supabase.from("users").select("*");
更多客户端库的使用请参考官方文档 https://supabase.com/docs 以了解更多。
结论
虽然 Supabase 和 Firebase 都提供了相似的功能,但它们之间还是存在一些关键差异。最明显的差异是 Supabase 是完全开源的,而 Firebase 是 Google 的商业产品。这意味着使用 Supabase,您可以完全控制您的数据和应用,而不必依赖第三方服务。
此外,Supabase 使用的是 Postgres 数据库,这是一个非常强大和灵活的关系数据库。而 Firebase 使用的是其自己的 NoSQL 数据库。
Supabase 为开发者提供了一个强大、灵活且易于使用的后端解决方案。它的开源特性使得开发者可以完全控制其应用,而不必担心第三方服务的限制。无论您是一个新手开发者还是一个有经验的工程师,Supabase 都是构建现代 web 应用的绝佳选择。
GitHub 仓库:https://github.com/supabase/supabase
原文始发于微信公众号(Github爱好者):Google Firebase 开源替代品 – Supabase
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/200965.html