Supabase automaticky vytvoří uživatelské profily při registraci

Zavedli jsme sociální přihlášení do našeho přihlašovacího systému Supabase, ve skutečnosti je možné automatizovat vytváření profilu.

To je super, protože většina poskytovatelů sociálních sítí nám již dává uživatelské jméno a profilový obrázek.

Vezměme si naše stávající přihlášení na GitHub jako příklad a podívejme se, jak automatizovat vytváření profilu.

Spouštěče a funkce v Supabase

Skvělá část na Supabase je, že je založena na Postgres a Postgres má tuto super skvělou funkci zvanou "Triggers".

To znamená, že můžete nastavit spouštěč pro konkrétní akci, u které se má akce uskutečnit.

Smíchejte to s funkcemi Supabase a můžeme spustit funkci pro vytvoření profilu při vytváření uživatele. ✨

Tyto spouštěče a funkce můžete vytvořit prostřednictvím rozhraní, ale nejjednodušším způsobem je spustit dotaz SQL.

Otevřete rozhraní dotazu a spusťte následující.

-- inserts a row into public.users
create function public.handle_new_user() 
returns trigger 
language plpgsql 
security definer set search_path = public
as $$
begin
  insert into public.profiles (id, username, avatar_url)
  values (new.id, new.raw_user_meta_data ->> 'user_name', new.raw_user_meta_data ->> 'avatar_url');
  return new;
end;
$$;

-- trigger the function every time a user is created
create trigger on_auth_user_created
  after insert on auth.users
  for each row execute procedure public.handle_new_user();

Zde vytvoříme novou funkci nazvanou handle_new_user .

Tato funkce uvádí, že by se měla vložit do public.profiles tabulku a přidejte id , username a avatar_url .
Přebírá hodnoty z new objekt, který odkazuje na položku, která to vyvolává, což bude auth.users jeden.

A pak přidáme spouštěč, který se váže po každém vložení na auth.users tabulky pro provedení funkce, kterou jsme právě vytvořili.

Jakmile spustíte tento dotaz, můžete je najít ve svém účtu Supabase v možnostech databáze.

Upravil jsem svou vlastní spuštěnou šablonu tak, aby se obrázek automaticky zobrazoval při registraci, a můžete vidět, že se to nyní stahuje z přihlášení.

Považuji to za velmi užitečné, protože nám to umožňuje zvládnout to na straně databáze a nezahrnuje nový kód pro naši aplikaci.

Tyto funkce a spouštěče můžete použít i pro jiné účely. Možná budete chtít aktualizovat počet nebo vyvolat externí akci.

K čemu byste je použili?

Děkujeme za přečtení a pojďme se spojit!

Děkuji, že čtete můj blog. Neváhejte se přihlásit k odběru mého e-mailového zpravodaje a připojte se na Facebooku nebo Twitteru