NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
[TOC] > [home](https://supabase.com/docs) # Supabase 简介 [Supabase](https://supabase.com/) 是一个开源的后端即服务(BaaS)平台,被誉为 “开源版 Firebase”。它基于 PostgreSQL 构建,提供一整套现代 Web 和移动应用所需的后端服务。 --- ## ✨ 核心特点 | 特性 | 描述 | |------|------| | 🔓 **开源** | 完全 MIT 开源,支持自托管部署 | | 🗃️ **PostgreSQL 数据库** | 强大的关系型数据库,支持 SQL、视图、函数、全文检索等 | | 🔌 **自动 REST & Realtime API** | 每个数据库表自动生成 REST API 和 WebSocket 实时订阅 | | 🔐 **认证服务(Auth)** | 支持注册/登录、Magic Link、OAuth(Google、GitHub、Apple 等) | | 📁 **存储服务(Storage)** | 内置 S3 式文件存储,支持权限控制 | | ⚡ **边缘函数(Edge Functions)** | 支持部署 TypeScript 编写的服务端函数 | | 🧩 **客户端 SDK** | 提供 JS、TS、Python、Flutter 等 SDK,使用简单 | | 🧪 **实时数据监听** | 数据库变更通过 WebSocket 推送至客户端 | | 🛠️ **可视化后台管理(Studio)** | 内置 Web 控制台,直接管理数据库、用户和权限 | --- ## 🔄 与 Firebase 的对比 | 功能 | Supabase | Firebase | |------|----------|----------| | 数据库类型 | PostgreSQL(关系型) | Firestore(文档型) | | 是否开源 | ✅ 是 | ❌ 否 | | 自托管能力 | ✅ 支持 | ❌ 不支持 | | 实时能力 | ✅ 支持(基于 WebSocket) | ✅ 支持 | | 云函数 | ✅ Edge Functions | ✅ Cloud Functions | | 文件存储 | ✅ 内置存储模块 | ✅ Firebase Storage | | 适合人群 | 更偏后端/SQL能力强 | 偏前端/快速原型开发 | ## 核心组件结构 | 组件 | 描述 | | --- | --- | | **PostgREST** | 自动生成 RESTful API | | **GoTrue** | 用户身份验证和会话管理(基于 JWT) | | **Realtime** | PostgreSQL 增量订阅引擎,实时推送 | | **Storage** | 文件管理系统,支持权限配置 | | **Studio** | 数据库和权限的管理控制台 | ## 支持的语言和框架 | 框架 / 平台 | SDK 名称 | | --- | --- | | React | `@supabase/supabase-js` | | Vue | `@supabase/supabase-js` | | Angular | `@supabase/supabase-js` | | Flutter | `supabase_flutter` | | React Native | `@supabase/supabase-js` | | Svelte | `@supabase/supabase-js` | | Next.js | `@supabase/auth-helpers-nextjs` | ## 🧰 使用示例(JavaScript) ```js import { createClient } from '@supabase/supabase-js'; const supabase = createClient('https://your-project.supabase.co', 'public-anon-key'); const { data, error } = await supabase .from('users') .select('*') .eq('id', 1); ``` ## 🧰 使用示例(Flutter) 在 Flutter 中使用 Supabase,只需安装 SDK 并初始化: ### 📦 安装依赖 ```bash flutter pub add supabase_flutter ``` ### 🧑‍💻 初始化 Supabase 客户端 ``` import 'package:supabase_flutter/supabase_flutter.dart'; void main() async { await Supabase.initialize( url: 'https://your-project.supabase.co', anonKey: 'your-public-anon-key', ); runApp(MyApp()); } ``` ### 用户注册/登录示例 ``` final supabase = Supabase.instance.client; // 注册 await supabase.auth.signUp(email: 'test@example.com', password: 'password'); // 登录 await supabase.auth.signInWithPassword(email: 'test@example.com', password: 'password'); ``` ### 查询数据 ``` final response = await supabase .from('users') .select() .eq('id', 1); final data = response; ```