Skip to content

Supabase 节点常见问题

以下是Supabase 节点的一些常见错误和问题以及解决或排除故障的步骤。

按元数据过滤行

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

然后,您可以在Filters (String)参数中构建查询,使用Supabase 元数据查询语言(受MongoDB 选择器格式启发)来过滤元数据。使用Postgres箭头 JSON 运算符访问元数据属性,如下所示(花括号表示要填写的组件):

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

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

1
metadata->>age=gte.21

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

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

在 Docker 中运行 Supabase 时,您需要配置网络,以便 n8n 可以连接到 Supabase。

解决方案取决于您如何托管这两个组件。

如果只有 Supabase 在 Docker 中

如果只有 Supabase 在 Docker 中运行,则自托管指南使用的 Docker Compose 文件已经运行绑定到正确接口的 Supabase。

配置Supabase 凭据时,地址应该可以正常工作(将主机设置为)。

如果 Supabase 和 n8n 在单独的 Docker 容器中运行

如果 n8n 和 Supabase 都在 Docker 中的单独容器中运行,则可以使用 Docker 网络连接它们。

通过绑定到容器内部,将 Supabase 配置为监听所有接口(官方Docker Compose 配置已经实现了此功能)。如果您尚未在同一个 Docker Compose 文件中同时管理Supabase 和 n8n 组件,请将它们添加到同一个用户定义的桥接网络中。

配置Supabase 凭据时,请使用 Supabase API 网关容器的名称(默认)作为主机地址,而不是。例如,如果使用默认配置,则应将Host设置为。

记录可以通过 Postgres 访问,但不能通过 Supabase 访问

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

当您使用表编辑器在公共架构中创建表时,Supabase 始终会启用 RLS。启用 RLS 后,API 不会返回任何包含公钥的数据,直到您创建策略为止。这是一项安全措施,旨在确保您只公开所需的数据。

要从启用 RLS 作为角色的表中访问数据,请创建策略以启用您打算使用的访问模式。