I created a recipes table in supabase with a foreign key of user_id inside it that is getting from supabase build in users table auth.user.id
now I’m trying to get all the recipes with the date of the user (user_id in recipe table):
export async function getRecipes() {
const { data, error } = await supabase.from("recipes").select("*,users(*)");
if (error) {
console.error(error);
throw new Error("Recipes could not be loaded");
}
return data;
}
but i am getting this error details : "unexpected "u" expecting "sum", "avg", "count", "max" or "min"" message : ""failed to parse select parameter (*,auth.users(*))
why is that happening? how can i get the data of the user?
2
Answers
You cannot make requests to the
auth.users
table using the javascript library. This is not allowed as theauth.users
table contains sensitive data and you wouldn’t want this exposed to your client side code. You should create a table in yourpublic
schema with the data you want access to, you can take a look at this documentation page which discusses this https://supabase.com/docs/guides/auth/managing-user-dataWhat I would recommend is to create a
public.users
table that ‘represents’ some data fromauth.users
. You can do this easily usingtrigger
.As an example, I want to only have
email
andid
on mypublic.users
table because other information is not relevant.You can copy paste this code (new query) on SQL Editor on the Supabase dashboard:
Next, try to register a new user and you will automatically see this new user shows BOTH on
auth.users
andpublic.users
. You can then request to thepublic.users
table using the javascript library 🙂