@capgo/capacitor-supabase

中文文档
8.2.7发布于 2026/10/15MPL-2.0TypeScriptESM + CJS零依赖构建来源已验证近 30 天下载 1.7万

Capacitor- Auth、数据库和JWT访问的原生 SDK 组合

中文使用文档
文档目录38 节
  1. *免费开始*
  2. 主要特点
  3. 为什么是Supabase队长?
  4. 文档
  5. 兼容性
  6. 安装
  7. iOS 设置
  8. Android 设置
  9. 使用量
  10. 初始化客户端
  11. 认证
  12. 会话管理
  13. 收听 Auth 状态更改
  14. 使用带有 @supabase/ supabase-js的 JWT
  15. 数据库操作( Native)
  16. API 密码
  17. 初始化(...)
  18. 签名 With Password (...)
  19. 注册(...)
  20. 匿名签名 ()
  21. 签名 WithOAuth (...)
  22. 签名 InWithOtp (...)
  23. 校验 Otp (...)
  24. 符号输出( C)
  25. 获取会议( C)
  26. 刷新会议( )
  27. 获取用户 ()
  28. 设置会议(...)
  29. 添加倾听器( “ 自动状态变化 ” ,...)
  30. 删除所有收听器( )
  31. 选择(...)
  32. 插入(...)
  33. 更新(...)
  34. 删除(...)
  35. 获取 PluginVersion ()
  36. 接口
  37. 类型异名
  38. 许可证

@ capgo/ 电容器- supabase

使用您的 Capacitor 应用程序中的本地 SDK 进行认证和数据库呼叫, 并获取您的网页层的 JWT .

Capgo - Build Capacitor apps with AI, ship updates instantly

队长:在几分钟内将修正推给您的 Capacitor 用户,在没有Mac的情况下构建已签名的iOS和Android apps,并在一击中回滚.

*免费开始*

14天无限自由审判. 不需要信用卡

🤖 建筑与AI编码代理? 安装 Capgo 技能 所以克劳德代码,代码,光标,副驾驶,或双子座CLI知道如何安装和使用 @capgo/capacitor-supabase 在您的电容应用程序中: npx skills add Cap-go/capgo-skills。然后问你的经纪人: 将@capgo/capor-supabase 添加到我的Capacitor app上,并把它连接起来。" 代理设置指南 • 妇女 主机磁共振

@capgo/capacitor-supabase for Capacitor apps

主要特点

  • 认证方法电子邮件和密码、注册、匿名、OAuth供应商和检察官办公室 verifyOtp()。 。 。 .
  • 会议数字 : getSession(), (中文(简体) ), refreshSession(), (中文(简体) ), setSession(), (中文(简体) ), getUser() 财务报告和审定财务报表 signOut(),与 authStateChange 活动.
  • JWT 访问: 会话包括您自己的 API 电话的访问符 .
  • 数据库数字 : select(), (中文(简体) ), insert(), (中文(简体) ), update() 财务报告和审定财务报表 delete() 在你们的桌子上.
  • 原生 SDKs: iOS上的supabase-swift和Android上的supabase-kt. 互联网档案馆的存檔,存档日期2014-12-02.
  • 平台: iOS和Android. 互联网档案馆的存檔,存档日期2013-12-21. 在网络上, 使用 @supabase/supabase-js 直接说.

为什么是Supabase队长?

本地 SDK 组合 真实本地认证 使用 JWT 令牌访问您的 Capactor 应用程序 :

  • 本地 SDK 整合 - 全面访问Supabase的本地iOS和Android SDKs
  • JWT 令牌访问 - 从本地认证获取 JWT 令牌供 JavaScript/ web 层使用
  • 完整认证方法 - 电子邮件/密码、OAuth、OTP、魔法链接等等
  • 会话管理 - 以自动刷新方式处理本地会话
  • 数据库操作 - Supabase表格的本地CRUD操作
  • Auth 状态听众 - 实时认证状态变化事件
  • 混合办法 - 数据库查询使用带有 supabase-js 的本地认证
  • 自由和开放源代码 - 不需要有偿服务

适合需要安全本土认证的应用程序,同时利用Supabase强大的后端服务.

为什么只有Auth和基本的DB操作? Supabase JS SDK已经在Capacitor为大多数特性(Realtime,存储,边缘函数等)做了出色的工作. 为每个特点建造本土桥梁将增加复杂性,而没有实际好处。 此插件的焦点 认证 当地SDK提供实际价值(安全信使存储、OAuth流量、生物鉴别)。 其它的,只要使用 @supabase/supabase-js 与来自本地的JWT .

为什么不把所有东西都从本土连接起来呢?

  • 无业绩收益 - 桥面(JSON系列化/JSON与原住地之间的隔离)否定了跳过HTTP飞行前请求的任何好处。 你只是把转换成本从网络转移到CPU.
  • 类型安全问题 – 原始SDK需要每张桌子/平地打入型号. 您需要定义 Swift/Kotlin 类型 用于您的整个数据库计划并保持同步 。 与JS,你得到动态打字 刚刚工作.
  • 赡养负担 - 每一次Supabase SDK更新都需要更新3个代码库(JS,iOS,Android)而不只是一个. JS SDK已经得到了Supabase的妥善维护.

文档

这里有最完整的医生: https://capgo.app/docs/plugins/supabase/ 页面存档备份,存于互联网档案馆

兼容性

插件版本电容兼容性维护
联合国联合国✅
页:1页:1应要求
页:1页:1❌
页:1页:1❌

说明: 此插件的主要版本沿用了Capacitor的主要版本. 使用匹配您的 Capacitor 安装的版本( 如 Capacitor 8 的插件 v8) 。 只有最新的主要版本得到积极维护.

安装

您可以使用我们的 AI 辅助设置安装插件 。 使用以下命令将 Capgo 技能添加到您的 AI 工具 :

npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

然后使用下列提示:

Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-supabase` plugin in my project.

如果您更喜欢手动设置,请通过运行以下命令来安装插件,并遵循下面的平台特定指令:

npm install @capgo/capacitor-supabase
npx cap sync

iOS 设置

不需要额外设置。 插件使用 Swift 套件管理器包含 Supabase Swift SDK.

Android 设置

插件要求最低SDK为26 (Android 8.0). 保证你 android/variables.gradle 拥有:

minSdkVersion = 26

使用量

初始化客户端

import { CapacitorSupabase } from '@capgo/capacitor-supabase';

await CapacitorSupabase.initialize({
  supabaseUrl: 'https://your-project.supabase.co',
  supabaseKey: 'your-anon-key'
});

认证

签名 用电子邮件/密码输入

const { session, user } = await CapacitorSupabase.signInWithPassword({
  email: '[email protected]',
  password: 'password123'
});

// Access the JWT token
console.log('JWT:', session?.accessToken);

注册

const { session, user } = await CapacitorSupabase.signUp({
  email: '[email protected]',
  password: 'password123',
  data: { name: 'John Doe' }
});

匿名签名

const { session, user } = await CapacitorSupabase.signInAnonymously();
console.log('Anonymous user ID:', user?.id);

OAuth 签名

await CapacitorSupabase.signInWithOAuth({
  provider: 'google',
  redirectTo: 'myapp://callback'
});

检察官办公室签名

// Send OTP
await CapacitorSupabase.signInWithOtp({
  email: '[email protected]'
});

// Verify OTP
const { session, user } = await CapacitorSupabase.verifyOtp({
  email: '[email protected]',
  token: '123456',
  type: 'email'
});

签出

await CapacitorSupabase.signOut();

会话管理

获取当前会话

const { session } = await CapacitorSupabase.getSession();
if (session) {
  console.log('JWT:', session.accessToken);
  console.log('Refresh Token:', session.refreshToken);
  console.log('Expires At:', session.expiresAt);
}

刷新会话

const { session } = await CapacitorSupabase.refreshSession();

获取当前用户

const { user } = await CapacitorSupabase.getUser();
if (user) {
  console.log('User ID:', user.id);
  console.log('Email:', user.email);
}

手动设定会话

const { session } = await CapacitorSupabase.setSession({
  accessToken: 'eyJ...',
  refreshToken: 'abc123'
});

收听 Auth 状态更改

const listener = await CapacitorSupabase.addListener(
  'authStateChange',
  ({ event, session }) => {
    console.log('Auth event:', event);
    // Events: INITIAL_SESSION, SIGNED_IN, SIGNED_OUT, TOKEN_REFRESHED, USER_UPDATED
    if (session) {
      console.log('JWT:', session.accessToken);
    }
  }
);

// Later, remove the listener
listener.remove();

使用带有 @supabase/ supabase-js的 JWT

主要使用案例是从本地认证获取JWT,并与JavaScript Supabase客户端使用:

import { createClient } from '@supabase/supabase-js';
import { CapacitorSupabase } from '@capgo/capacitor-supabase';

// Initialize native client
await CapacitorSupabase.initialize({
  supabaseUrl: 'https://your-project.supabase.co',
  supabaseKey: 'your-anon-key'
});

// Sign in natively
await CapacitorSupabase.signInWithPassword({
  email: '[email protected]',
  password: 'password'
});

// Get session with JWT
const { session } = await CapacitorSupabase.getSession();

// Create JS client with the native session
const supabase = createClient(
  'https://your-project.supabase.co',
  'your-anon-key',
  {
    global: {
      headers: {
        Authorization: `Bearer ${session?.accessToken}`
      }
    }
  }
);

// Now use supabase-js as normal
const { data } = await supabase.from('table').select('*');

数据库操作( Native)

插件还支持本地数据库操作 :

选择

const { data, error } = await CapacitorSupabase.select({
  table: 'users',
  columns: 'id, name, email',
  filter: { active: true },
  limit: 10,
  orderBy: 'created_at',
  ascending: false
});

插入

const { data, error } = await CapacitorSupabase.insert({
  table: 'posts',
  values: { title: 'Hello', content: 'World' }
});

更新

const { data, error } = await CapacitorSupabase.update({
  table: 'posts',
  values: { title: 'Updated Title' },
  filter: { id: 1 }
});

删除

const { data, error } = await CapacitorSupabase.delete({
  table: 'posts',
  filter: { id: 1 }
});

API 密码

用于本地Supabase SDK整合的 Capacitor Supabase插件.

此插件提供了本地iOS和Android Supabase SDK功能 具有检索JWT 令牌用于JavaScript/web层的能力.

初始化(...)

initialize(options: SupabaseConfig) => Promise<void>

以您的项目证书初始化 Supabase 客户端 . 在使用其他方法之前必须先打电话.

参数类型说明
optionsSupabaseConfig- 配置选项,包括 URL 和 API 密钥

自: 0.0.1 资源


签名 With Password (...)

signInWithPassword(options: SignInWithPasswordOptions) => Promise<AuthResult>

用电子邮件和密码签名 .

参数类型说明
optionsSignInWithPasswordOptions- 电子邮件和密码证明

回返情况: Promise<AuthResult>

自: 0.0.1 资源


注册(...)

signUp(options: SignUpOptions) => Promise<AuthResult>

注册有电子邮件和密码的新用户 .

参数类型说明
optionsSignUpOptions- 电子邮件、密码和可选用户元数据

回返情况: Promise<AuthResult>

自: 0.0.1 资源


匿名签名 ()

signInAnonymously() => Promise<AuthResult>

匿名签名. 创建临时的来宾会话,不需要证书.

回返情况: Promise<AuthResult>

自: 0.0.1 资源


签名 WithOAuth (...)

signInWithOAuth(options: SignInWithOAuthOptions) => Promise<void>

与OAuth供应商签约. 打开提供者的认证页面.

参数类型说明
optionsSignInWithOAuthOptions- OAuth 提供者和可选重定向 URL

自: 0.0.1 资源


签名 InWithOtp (...)

signInWithOtp(options: SignInWithOtpOptions) => Promise<void>

与通过电子邮件或短信发送的OTP(一次性密码)签约.

参数类型说明
optionsSignInWithOtpOptions- 发送检察官办公室的电子邮件或电话号码

自: 0.0.1 资源


校验 Otp (...)

verifyOtp(options: VerifyOtpOptions) => Promise<AuthResult>

检查一个检察官办公室的标志.

参数类型说明
optionsVerifyOtpOptions- 电子邮件/电话、信使和核查类型

回返情况: Promise<AuthResult>

自: 0.0.1 资源


符号输出( C)

signOut() => Promise<void>

签名当前用户 .

自: 0.0.1 资源


获取会议( C)

getSession() => Promise<{ session: Session | null; }>

如果存在的话, 请访问当前会话 . 用 JWT 访问符返回会话 .

回返情况: Promise<{ session: Session | null; }>

自: 0.0.1 资源


刷新会议( )

refreshSession() => Promise<{ session: Session | null; }>

刷新当前会话并获取新符号 .

回返情况: Promise<{ session: Session | null; }>

自: 0.0.1 资源


获取用户 ()

getUser() => Promise<{ user: User | null; }>

获取当前认证的用户 .

回返情况: Promise<{ user: User | null; }>

自: 0.0.1 资源


设置会议(...)

setSession(options: SetSessionOptions) => Promise<{ session: Session | null; }>

手动设定会话带有访问权限并刷新符号 . 用于恢复会话或与外部认证合并 .

参数类型说明
optionsSetSessionOptions- 进入和刷新信使

回返情况: Promise<{ session: Session | null; }>

自: 0.0.1 资源


添加倾听器( “ 自动状态变化 ” ,...)

addListener(eventName: 'authStateChange', listenerFunc: (data: AuthStateChange) => void) => Promise<PluginListenerHandle>

聆听认证状态的更改 .

参数类型说明
eventName'authStateChange'- 一定是"澳洲之变"
listenerFunc(data: AuthStateChange) => void- 认证状态变化的召回函数

回返情况: Promise<PluginListenerHandle>

自: 0.0.1 资源


删除所有收听器( )

removeAllListeners() => Promise<void>

删除所有用于认证状态更改的听众 .

自: 0.0.1 资源


选择(...)

select<T = unknown>(options: SelectOptions) => Promise<QueryResult<T[]>>

在表格中执行 SELECT 查询 .

参数类型说明
optionsSelectOptions- 查询选项,包括表格、列、过滤器

回返情况: Promise<QueryResult<T[]>>

自: 0.0.1 资源


插入(...)

insert<T = unknown>(options: InsertOptions) => Promise<QueryResult<T>>

将数据插入表格.

参数类型说明
optionsInsertOptions- 要插入的表格名称和值

回返情况: Promise<QueryResult<T>>

自: 0.0.1 资源


更新(...)

update<T = unknown>(options: UpdateOptions) => Promise<QueryResult<T>>

更新表格中的数据.

参数类型说明
optionsUpdateOptions- 表格名称、更新值和过滤条件

回返情况: Promise<QueryResult<T>>

自: 0.0.1 资源


删除(...)

delete<T = unknown>(options: DeleteOptions) => Promise<QueryResult<T>>

删除表格中的数据.

参数类型说明
optionsDeleteOptions- 表格名称和过滤条件

回返情况: Promise<QueryResult<T>>

自: 0.0.1 资源


获取 PluginVersion ()

getPluginVersion() => Promise<{ version: string; }>

获取本地 Capacitor 插件版本 .

回返情况: Promise<{ version: string; }>

自: 0.0.1 资源


接口

Supabase 配置

初始化Supabase客户端的配置选项 .

Prop类型说明自兹
supabaseUrlstringSupabase项目 URL.0.0.1 资源
supabaseKeystringSupabase匿名/公用密钥.0.0.1 资源

认证结果

返回会话的认证操作的结果 .

Prop类型说明自兹
sessionSession | null如果认证成功, 则会话 .0.0.1 资源
userUser | null成功者为认证用户 .0.0.1 资源

会议

会议 包含认证符号的对象.

Prop类型说明自兹
accessTokenstringJWT访问标志. 用于认证的 API 请求 .0.0.1 资源
refreshTokenstring获取新访问令牌的刷新令牌 .0.0.1 资源
tokenTypestring托肯类型(通常为"承担者").0.0.1 资源
expiresInnumber访问令牌到期前秒数 .0.0.1 资源
expiresAtnumber令牌过期时解去九时戳.0.0.1 资源
userUser认证用户 .0.0.1 资源

用户

用户 从认证操作返回对象.

Prop类型说明自兹
idstring用户独有的标识符 .0.0.1 资源
emailstring用户电子邮件地址 .0.0.1 资源
phonestring用户电话号码.0.0.1 资源
createdAtstring创建用户的时间戳 .0.0.1 资源
lastSignInAtstring用户最后一次签名时的时标 .0.0.1 资源
userMetadataRecord<string, unknown>用户 元数据(海关字段).0.0.1 资源
appMetadataRecord<string, unknown>App 元数据.0.0.1 资源

以 Password 选项签名

电子邮件/密码签名选项 .

Prop类型说明自兹
emailstring用户电子邮件地址 .0.0.1 资源
passwordstring用户密码.0.0.1 资源

签名选项

电子邮件/密码输入选项 .

Prop类型说明自兹
emailstring用户电子邮件地址 .0.0.1 资源
passwordstring用户密码.0.0.1 资源
dataRecord<string, unknown>可选用户元数据与用户一起存储.0.0.1 资源

以 Outh 选项签名

OAuth 登录的选项 .

Prop类型说明自兹
providerOAuthProviderOAuth提供商使用.0.0.1 资源
redirectTostringURL 重新定向到认证后 .0.0.1 资源
scopesstringOAuth 范围请求 .0.0.1 资源

以 Otp 选项签名

检察官办公室的登录选项.

Prop类型说明自兹
emailstring用户'email 地址( 如果不提供电话则需要) .0.0.1 资源
phonestring用户电话号码( 不提供电子邮件则需要) .0.0.1 资源
shouldCreateUserboolean如果设置为虚假,此方法不会创建新的用户. 默认为真.8.1.1 国家

校验 Otp 选项

核查检察官办公室的选项.

Prop类型说明自兹
emailstring用户'email 地址( 如果不提供电话则需要) .0.0.1 资源
phonestring用户电话号码( 不提供电子邮件则需要) .0.0.1 资源
tokenstring通过电子邮件/短信收到的检察官办公室的令牌.0.0.1 资源
type'sms' | 'email' | 'magiclink' | 'signup' | 'recovery'检察官办公室核查的类型.0.0.1 资源

设定会议选项

手动设置会话的选项 .

Prop类型说明自兹
accessTokenstring出入证.0.0.1 资源
refreshTokenstring刷新标志.0.0.1 资源

插件听筒

Prop类型
remove() => Promise<void>

Auth State 变化

认证状态更改回调数据 .

Prop类型说明自兹
eventAuthChangeEvent认证事件的类型 .0.0.1 资源
sessionSession | null本届会议(签署后取消).0.0.1 资源

查询结果

数据库查询结果.

Prop类型说明自兹
dataT | null查询结果数据 .0.0.1 资源
errorstring | null如果查询失败, 错误消息 .0.0.1 资源
countnumber受影响的行数(用于插入/更新/删除).0.0.1 资源

选择选项

用于选择查询的数据库选项.

Prop类型说明自兹
tablestring要查询的表格名称 .0.0.1 资源
columnsstring要选择的列( 默认 : "*" ) .0.0.1 资源
filterRecord<string, unknown>过滤条件作为密钥值对 .0.0.1 资源
limitnumber要返回的最大行数 .0.0.1 资源
offsetnumber要跳过行数 .0.0.1 资源
orderBystring列为取序.0.0.1 资源
ascendingboolean请指示.0.0.1 资源
singleboolean返回一行而不是数组.0.0.1 资源

插入选项

数据库插入查询选项.

Prop类型说明自兹
tablestring要插入的表格名称 .0.0.1 资源
valuesRecord<string, unknown> | Record<string, unknown>[]要插入的数据( 单个对象或一系列对象) .0.0.1 资源

更新选项

数据库更新查询的选项 .

Prop类型说明自兹
tablestring要更新的表格名称 .0.0.1 资源
valuesRecord<string, unknown>需要更新的数据.0.0.1 资源
filterRecord<string, unknown>过滤条件以匹配行以更新 .0.0.1 资源

删除选项

数据库删除查询的选项 .

Prop类型说明自兹
tablestring要删除的表格名称 .0.0.1 资源
filterRecord<string, unknown>过滤条件以匹配要删除的行 .0.0.1 资源

类型异名

记录

构造 T 类型 K 的一组属性类型

{ [P in K]: T; }

提供认证

支持 OAuth 供应商 .

'apple' | 'azure' | 'bitbucket' | 'discord' | 'facebook' | 'figma' | 'github' | 'gitlab' | 'google' | 'kakao' | 'keycloak' | 'linkedin' | 'linkedin_oidc' | 'notion' | 'slack' | 'slack_oidc' | 'spotify' | 'twitch' | 'twitter' | 'workos' | 'zoom'

AuthChangeEvent 活动

Auth 状态更改事件类型 .

'INITIAL_SESSION' | 'SIGNED_IN' | 'SIGNED_OUT' | 'TOKEN_REFRESHED' | 'USER_UPDATED' | 'PASSWORD_RECOVERY'

许可证

MPL - 2.0 导弹

版本与发布记录

@capgo/capacitor-supabase 共发布 21 个版本,首次发布于 2026/01/14;过去 12 个月发布了 21 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
8.2.7latest2026/10/1525 天前
8.2.62026/10/1327 天前
8.2.52026/10/091 个月前
8.2.42026/10/081 个月前
8.2.32026/10/081 个月前
8.2.22026/09/171 个月前

关于 @capgo/capacitor-supabase 的常见问题

@capgo/capacitor-supabase 是什么?

Capacitor- Auth、数据库和JWT访问的原生 SDK 组合

如何安装 @capgo/capacitor-supabase?

在项目目录运行 npm install @capgo/capacitor-supabase,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@capacitor/core(>=8.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@capgo/capacitor-supabase 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@capgo/capacitor-supabase 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@capgo/capacitor-supabase 可以商用吗?

@capgo/capacitor-supabase 使用 MPL-2.0 许可。弱 Copyleft:可以商用,也可以和闭源代码一起使用;但如果分发时修改了 MPL 授权的文件,这些文件的修改需以 MPL 开源。以上为概括,不构成法律意见,请以许可原文为准。

@capgo/capacitor-supabase 的下载量有多少?

根据 npm 官方下载统计,@capgo/capacitor-supabase 在 2026/10/09 – 2026/11/07 这 30 天内被下载 17,499 次,日均约 583 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@capgo/capacitor-supabase 还在维护吗?

最新版本 8.2.7 发布于 2026/10/15(25 天前);至今共发布 21 个版本,其中过去 12 个月发布了 21 个;首次发布于 2026/01/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。