Supabase节点常见问题#
以下是Supabase节点常见错误和问题及其解决方法或排查步骤。
按元数据筛选行#
要通过Supabase元数据筛选行,请将选择类型设置为字符串。
从这里开始,您可以在过滤器(字符串)参数中构建查询,使用受MongoDB选择器格式启发的Supabase元数据查询语言来筛选元数据。像这样使用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。例如,若采用默认配置,您应将主机设置为http://supabase-kong:8000。
记录可通过Postgres访问但无法通过Supabase访问#
如果使用Supabase节点查询记录返回为空,但通过Postgres节点或Postgres客户端可以获取到数据,可能是与Supabase的行级安全策略(RLS)存在冲突。
在使用表编辑器在公共模式中创建表时,Supabase总会启用RLS(行级安全)。当RLS激活时,API不会使用公共anon密钥返回任何数据,除非您创建了策略。这是一项安全措施,确保您只暴露您想要公开的数据。
要从启用了RLS的表中以anon角色访问数据,创建策略以启用您计划使用的访问模式。