Supabase 节点常见问题#
以下是使用 Supabase 节点时可能遇到的常见错误和问题,以及相应的解决方法或排查步骤。
通过元数据筛选行#
要通过 Supabase 元数据筛选行,请将选择类型设置为字符串。
然后,您可以在筛选器(字符串)参数中使用 Supabase 元数据查询语言构建查询,该语言灵感来自 MongoDB 选择器格式。使用 Postgres ->>
箭头 JSON 运算符访问元数据属性,如下所示(花括号表示需要填充的组件):
1 |
|
例如,要访问元数据中的 age
属性并返回大于或等于 21 的结果,您可以在筛选器(字符串)字段中输入以下内容:
1 |
|
您可以组合这些运算符来构建更复杂的查询。
使用 Docker 时无法连接到本地 Supabase 数据库#
当您在 Docker 中运行 Supabase 时,需要配置网络以便 n8n 能够连接到 Supabase。
解决方案取决于您如何托管这两个组件。
如果只有 Supabase 在 Docker 中运行#
如果只有 Supabase 在 Docker 中运行,自托管指南使用的 Docker Compose 文件已经将 Supabase 绑定到正确的接口。
在配置 Supabase 凭据时,localhost
地址应该可以正常工作(将主机设置为 localhost
)。
当 Supabase 和 n8n 运行在独立的 Docker 容器中时#
如果 n8n 和 Supabase 分别运行在不同的 Docker 容器中,您可以使用 Docker 网络来连接它们。
配置 Supabase 监听容器内的所有接口(通过绑定到 0.0.0.0
,官方 Docker compose 配置已实现此功能)。如果尚未通过同一个 Docker Compose 文件管理它们,请将 Supabase 和 n8n 组件添加到同一个用户自定义桥接网络。
在配置 Supabase 凭据时,使用 Supabase API 网关容器的名称(默认为 supabase-kong
)作为主机地址,而非 localhost
。例如,若使用默认配置,您应将 Host 设置为 http://supabase-kong:8000
。
记录可通过 Postgres 访问但无法通过 Supabase 访问#
如果使用 Supabase 节点查询记录返回空结果,但通过 Postgres 节点或 Postgres 客户端可以获取数据,可能是与 Supabase 的行级安全策略 (RLS)存在冲突。
当您通过 Table Editor 在公共模式中创建表时,Supabase 总会启用 RLS。RLS 激活后,API 不会返回任何使用公共 anon
密钥的数据,除非您创建了策略。这是一项安全措施,确保仅暴露您计划公开的数据。
要以 anon
角色访问启用 RLS 的表数据,请创建策略来启用您计划使用的访问模式。