Google Firebase 开源替代品 – Supabase

Google Firebase 开源替代品 - Supabase

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

Google Firebase 开源替代品 - 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 网关。

核心功能

Google Firebase 开源替代品 - Supabase
  • 实时数据库: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

Google Firebase 开源替代品 - Supabase

原文始发于微信公众号(Github爱好者):Google Firebase 开源替代品 – Supabase

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/200965.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!