Ahhh… sekarang saya mengerti situasinya. Ini masalah desain data Supabase yang benar vs kebutuhan frontend. Mari kita bahas tuntas.
auth.users menyimpan email/password dan info sensitif lainnya.anon atau authenticated, karena risiko keamanan tinggi.profiles table:
auth.users.profiles → duplikasi → rentan tidak sinkron.auth.users karena RLS / anon role → bakal peringatan keamanan.Ada 3 cara utama:
Buat fungsi di Supabase yang mengembalikan email user sendiri:
create or replace function public.get_my_email()
returns table(id uuid, email text)
language sql
security invoker
as $$
select u.id, u.email
from auth.users u
where u.id = auth.uid();
$$;
grant execute on function public.get_my_email() to authenticated;
✅ Keuntungan:
profilesconst { data } = await supabase.rpc('get_my_email');