You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Swift中为Supabase数据库变更监听设置高级过滤条件?

在Swift中监听Supabase数据库变更的高级过滤实现

直接使用"body=eq.hey or title=eq.hey"作为过滤条件无法生效,是因为Supabase Realtime的过滤规则遵循PostgREST语法,OR逻辑需要使用特定格式书写。

正确的实现方式

Supabase Realtime的OR条件需通过or=(条件1,条件2)的格式定义,每个条件内部用.分隔字段、操作符和值,而非自然语言的or关键字。

完整示例代码

let myChannel = await supabase.channel("db-changes")

let changes = await myChannel.postgresChange(
  UpdateAction.self,
  schema: "public",
  table: "messages",
  filter: "or=(body.eq.hey,title.eq.hey)"
)

await myChannel.subscribe()

for await change in changes {
  print(change.record)
}

复杂组合条件扩展

如果需要同时结合AND与OR逻辑,可以嵌套使用语法,例如筛选status为active且body等于hey或title等于hey的记录:

filter: "and=(status.eq.active,or=(body.eq.hey,title.eq.hey))"

内容的提问来源于stack exchange,提问作者Berry Blue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 21:33:11