跳到主要内容

Supabase 节点常见问题#

以下是使用 Supabase 节点 时可能遇到的一些常见错误和问题,以及相应的解决或排查步骤。

通过元数据筛选行#

要通过 Supabase 元数据筛选行,需将 选择类型 设置为 字符串

随后可在 筛选器(字符串) 参数中,使用受 MongoDB 选择器格式启发的 Supabase 元数据查询语言构建查询语句。通过 Postgres ->> 箭头 JSON 运算符访问元数据属性,示例如下(花括号表示需填充的组件):

metadata->>{your-property}={comparison-operator}.{comparison-value}

例如要访问元数据中的 age 属性并返回大于等于21的结果,您可以在**筛选器(字符串)**字段中输入以下内容:

metadata->>age=gte.21

您可以组合使用这些运算符来构建更复杂的查询。

使用 Docker 时无法连接本地 Supabase 数据库#

在 Docker 中运行 Supabase 时,需要配置网络以便 n8n 能够连接至 Supabase。

解决方案取决于两个组件的部署方式。

仅 Supabase 运行于 Docker 中#

若仅 Supabase 运行于 Docker 中,自托管指南使用的 Docker Compose 文件已配置 Supabase 绑定至正确接口。

配置 Supabase 凭证时,localhost 地址应可正常使用(将 主机 设置为 localhost)。

Supabase 与 n8n 分别运行于独立 Docker 容器#

若 n8n 与 Supabase 分别运行于独立 Docker 容器,可通过 Docker 网络实现互联。

通过绑定容器内的 0.0.0.0 配置 Supabase 监听所有接口(官方 Docker compose 配置已实现此功能)。若未在同一 Docker Compose 文件中统一管理,请将 Supabase 与 n8n 组件加入同一用户自定义桥接网络

配置 Supabase 凭证时,请使用 Supabase API 网关容器名称(默认为 supabase-kong)作为主机地址而非 localhost。例如采用默认配置时,需将 主机 设置为 http://supabase-kong:8000

可通过 Postgres 访问记录但无法通过 Supabase 访问#

若通过 Supabase 节点查询记录返回为空,但通过 Postgres 节点或 Postgres 客户端可正常访问,可能是与 Supabase 的行级安全性(RLS)策略冲突所致。

通过 Table Editor 在公共模式中创建表时,Supabase 始终会启用 RLS。当 RLS 激活时,在创建策略前 API 不会通过公共 anon 密钥返回任何数据,这是确保仅暴露目标数据的安全措施。

如需以 anon 角色访问启用 RLS 的表数据,请创建策略以启用目标访问模式。