Ahhh… sekarang saya mengerti situasinya. Ini masalah desain data Supabase yang benar vs kebutuhan frontend. Mari kita bahas tuntas.


🔹 Masalah utama

  1. Supabase best practice:
  2. profiles table:
  3. Frontend ingin menampilkan email:

🔹 Solusi aman & best practice

Ada 3 cara utama:


1️⃣ Filter per user lewat RPC (function)

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:

const { data } = await supabase.rpc('get_my_email');


2️⃣ Join profile + email RPC di frontend