Supabase PostgreSQL实时订阅失败:filter参数解析错误求助
问题原因及解决方案
问题出在字符串类型的UUID没有用单引号包裹。
你的users表的id是UUID(字符串类型),而官方示例中的id是数字类型:数字作为匹配值时不需要引号,但字符串必须用单引号括起来,否则Supabase的实时订阅解析器会把UUID拆分成多个参数,引发解析错误。
修改后的代码
const userId = session.data.session.user.id; supabaseListener = supabase .channel("balance") .on( "postgres_changes", { event: "UPDATE", schema: "public", table: "users", filter: `id=eq.'${userId}'`, // 给userId加上单引号 }, handleRecordUpdated ) .subscribe(); return () => { authListener.unsubscribe(); if (supabaseListener) { supabaseListener.unsubscribe(); } };
修改后console.log会输出id=eq.'f96efe56-ff22-4fc4-abc1-abc1',符合PostgreSQL字符串值的匹配语法,就能正常订阅事件了。
内容的提问来源于stack exchange,提问作者Alex S
相关产品推荐
相关产品推荐

