Flutter Supabase如何监听含JSON字段条件的数据库变更?
在Flutter中使用Supabase监听JSON字段的数据库变更过滤方法
要筛选countries表中user_id(JSON类型)里id值等于3的数据,你需要利用PostgreSQL对JSON字段的路径查询语法,替换原来的eq('user_id', '???'):
- 如果
user_id中的id是数字类型,使用:eq('user_id->id', 3) - 如果
user_id中的id是字符串类型,使用:eq('user_id->>id', '3')
完整示例代码
supabase.channel('public:countries') .onPostgresChanges( event: PostgresChangeEvent.all, schema: 'public', table: 'countries', filter: FilterBuilder().eq('user_id->id', 3), // 根据实际数据类型调整 callback: (payload) { // 处理数据库变更逻辑 }, ) .subscribe();
说明
->用于访问JSON字段并保留其原始数据类型(比如数字仍为数字类型)->>会将JSON字段的值转换为文本类型,适合匹配字符串格式的ID
内容的提问来源于stack exchange,提问作者Jaafar Melhem
相关产品推荐
相关产品推荐

