Tabla profiles en Supabase: datos sociales vs autenticación
Clase 7 de 17 • Curso de Supabase Avanzado
Contenido del curso
Autenticación
CRUD de la aplicación
Seguridad avanzada
Dashboard con Supabase Realtime
Emails y Resend para Suplatzigram
MCP y Edge Functions
Crear una tabla de perfiles en Supabase es clave para separar la autenticación de los datos visibles del usuario. Con esta configuración, podrás gestionar username, avatar y biografía sin tocar la parte técnica. Así, la cuenta vive en Supabase Auth y el perfil social en una tabla pública segura y lista para el frontend.
¿Qué resuelve la tabla de perfiles en Supabase?
La propuesta es dividir responsabilidades: lo técnico (autenticación, email, ID) por un lado y lo social (cómo se muestra la persona) por otro. Para ello se crea una tabla pública llamada Profiles que se vincula al user ID generado por la autenticación. Esto permite guardar y mostrar información visible como el username, el avatar y una breve biografía.
- Complementa Supabase Auth con datos públicos del usuario.
- Vincula perfiles al ID del usuario autenticado.
- Evita depender solo de metadata y mejora la seguridad.
- Prepara una lista utilizable en el frontend como perfil público.
¿Cómo crear Profiles con seguridad y relaciones?
Desde el dashboard de Supabase, en el editor de tablas, se agrega una nueva tabla llamada Profiles, manteniendo activa la política de row-level security.
- Crear la tabla: nombre Profiles y RLS activado.
- Definir el campo id: tipo UUID y clave primaria.
- Agregar username: tipo texto, puede ser nulo.
- Agregar avatar URL: tipo texto, almacena la URL de la imagen de perfil.
- Configurar la relación: añadir una foreign key que conecte la tabla pública de perfiles con la tabla privada de out → users.
- Relación explícita: que public.profiles.id sea igual a out.users.id.
- Mantener acciones por defecto en la foreign key: sin acciones especiales en actualizaciones o eliminaciones.
- Guardar cambios: confirmar la estructura y la relación.
¿Por qué usar UUID y row-level security?
El ID debe ser UUID porque ese es el tipo de dato que entrega el registro de usuarios. Así garantizas que el perfil reciba la información correcta del usuario. Mantener row-level security activo refuerza el control de acceso a los datos públicos según políticas.
¿Qué aporta la foreign key con users?
Definir una foreign key entre la tabla pública de perfiles y la privada de out → users crea una relación explícita. Con ello, cualquier dato publicado y vinculado queda coherente y trazable entre lo público y lo privado, sin acciones personalizadas adicionales.
¿Cómo se usará en el frontend y qué sigue?
Con la tabla lista, el proyecto ya dispone de perfiles públicos vinculados a la autenticación. El siguiente paso es usarlos en la interfaz: editar y mostrar el perfil, actualizar el username, agregar una biografía y cargar un avatar desde el storage. También se construirá una vista pública del perfil dentro de Suplatsegram.
¿Tienes ideas para campos extra en el perfil o reglas de visibilidad útiles para tu caso? Comparte tus dudas y propuestas en los comentarios.