Supabase关联auth.users表获取recipes数据报错问题咨询
错误原因及解决方案
错误原因
- 未指定表的Schema:Supabase内置的用户表
users属于authschema,你直接写users(*)时,Supabase默认只会在publicschema下查找表,找不到对应表后,解析器会误将users识别为聚合函数的一部分,从而抛出语法错误。 - 关联引用方式错误:即使指定了Schema,若没有通过外键关联的正确规则引用关联表,也会导致解析失败。
正确获取关联用户数据的方法
方法一:使用自动生成的关联(推荐)
当你在recipes表中创建user_id外键关联auth.users.id时,Supabase会自动生成一个名为user的关联关系(单数形式,对应外键字段名user_id)。你可以直接通过这个关联名称查询用户数据:
export async function getRecipes() { const { data, error } = await supabase.from("recipes").select("*, user(*)"); if (error) { console.error(error); throw new Error("Recipes could not be loaded"); } return data; }
方法二:显式指定Schema与关联条件
如果自动关联未生效,你可以显式指定auth schema,并通过外键字段匹配关联条件:
export async function getRecipes() { const { data, error } = await supabase .from("recipes") .select("*, auth.users(*)") .eq("recipes.user_id", "auth.users.id"); if (error) { console.error(error); throw new Error("Recipes could not be loaded"); } return data; }
内容的提问来源于stack exchange,提问作者Niv G.
相关产品推荐
相关产品推荐

