robotdood
01/04/2022, 3:52 AMcreate_profile_for_user
Postgres function when I try to access the user_metadata
object on my newly signed up user.
My profiles
table has a username
column (text) and my Postgres function looks like this:
begin
insert into public.profiles(id, username);
values(new.id, new.user_metadata.username);
return new;
end;
I'm adding user_metadata
as per the docs: https://supabase.com/docs/reference/javascript/auth-signup#sign-up-with-additional-user-meta-data
I know the data is successfully passed to the function because I can set username
to new
(instead of new.user_metadata.username
or new.data.username
or new.username
or other similar attempts) and I get something like this entered into the username
cell:
(00000000-0000-0000-0000-000000000000,3a8b9bf6-3313-4ad6-b67f-8b9eb97f5874,authenticated,"",test@email.com,$2a$10$tXkm/RwqkSgKwuy5QbvCGuwRjuSSrU/YVus.4VkwNzIbAB5.OKhyO,,,"",,"",,"","",,,"{""provider"": ""email"", ""providers"": [""email""]}","{""username"": ""my cool username""}",f,"2022-01-04 03:39:06.055591+00","2022-01-04 03:39:06.055591+00",,,"","",,,"",0)
I'm new to Postgres, but I figure my attempt to access user_metadata
with dot notation is what's failing me, does that sound right?robotdood
01/04/2022, 5:15 AMusers
table in the auth
tab/database of my table editor to find a raw_user_meta_data
column from which I am now copying into my profile
table when a user signs up. Now I'm wondering how to deal with JSONB in order to just store the value instead of the whole object—see ya soon, haha!robotdood
01/04/2022, 5:45 AMbegin
insert into public.profiles(id, username);
values(new.id, new.raw_user_meta_data->>'username');
return new;
end;
Neat!