跳至内容

Supabase节点常见问题#

以下是Supabase节点常见错误和问题及其解决方法或排查步骤。

按元数据筛选行#

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

从这里开始,您可以在过滤器(字符串)参数中构建查询,使用受MongoDB选择器格式启发的Supabase元数据查询语言来筛选元数据。像这样使用Postgres ->>箭头JSON操作符访问元数据属性(花括号表示需要填写的组件):

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

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

1
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网络连接它们。

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

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

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

如果使用Supabase节点查询记录返回为空,但通过Postgres节点或Postgres客户端可以获取到数据,可能是与Supabase的行级安全策略(RLS)存在冲突。

在使用表编辑器在公共模式中创建表时,Supabase总会启用RLS(行级安全)。当RLS激活时,API不会使用公共anon密钥返回任何数据,除非您创建了策略。这是一项安全措施,确保您只暴露您想要公开的数据。

要从启用了RLS的表中以anon角色访问数据,创建策略以启用您计划使用的访问模式。

优云智算