Skip to content

Supabase 节点常见问题#

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

按元数据过滤行#

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

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

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

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

1
metadata->>age=gte.21

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

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

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

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

如果只有 Supabase 在 Docker 中#

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

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

如果 Supabase 和 n8n 在不同的 Docker 容器中运行#

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

通过绑定到容器内的 0.0.0.0 来配置 Supabase 监听所有接口(官方的 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 的表中的数据,请创建策略以启用您打算使用的访问模式。