Cita a partir de mañana
Agendar revisión
99 €
Elegimos hueco, miro tu app con calma y te digo qué pasa y cómo se arregla.
- Sesión de trabajo en directo contigo
- Diagnóstico del error y del riesgo real
- Te quedas con el arreglo aplicado
Supabase ha rechazado guardar una fila. La tabla tiene activada la seguridad por filas, que es lo correcto, pero no hay ninguna regla que diga quién puede escribir en ella. Cuando no hay regla, la respuesta por defecto es que no.
Analízala gratis mientras lees. Tarda treinta segundos y no toca nada.
Solo leemos lo que tu app ya le entrega a cualquier visitante.
La seguridad por filas de Supabase funciona al revés de lo que uno espera: no bloquea lo que le dices que bloquee, sino que bloquea todo salvo lo que autorizas explícitamente. Al activarla en una tabla, esa tabla se cierra entera hasta que escribes una política que abra una rendija concreta.
Es muy habitual haber escrito la política de lectura y haberse olvidado de la de escritura. Se prueba la app, se ve que los datos se muestran bien, y el problema no aparece hasta que alguien intenta guardar algo. También pasa cuando la política existe pero exige que el usuario esté identificado y quien escribe no lo está, o cuando exige que el campo de propietario coincida con el usuario y tu código no está rellenando ese campo.
Esto se arregla en el panel de Supabase, en menos de cinco minutos. Ve con una idea clara de quién debe poder escribir en esa tabla antes de empezar, porque es la única decisión que importa aquí.
Si en algún momento ves un ejemplo que sugiere poner la condición a true para todo el mundo, eso equivale a dejar la tabla abierta. Solo tiene sentido en tablas de contenido público, nunca en una con datos de clientes.
Pégaselo tal cual al agente que escribió tu app. Está redactado para que te diga lo que ha hecho, no solo para que lo haga.
Prompt para pegarle a tu agente
Mi app da el error "new row violates row-level security policy" al intentar guardar en Supabase. Necesito que hagas esto: 1. Busca en el código la operación de inserción que está fallando y dime en qué tabla escribe y qué campos envía. 2. Comprueba si esa tabla tiene un campo de propietario (del tipo user_id) y si el código lo está rellenando con el identificador del usuario que ha iniciado sesión. Si no lo rellena, corrígelo. 3. Comprueba que la operación se hace con el usuario identificado y no con una sesión anónima, y dime en qué punto del código se establece esa sesión. 4. Escríbeme la política de RLS que necesita esa tabla en SQL, para que yo la revise antes de aplicarla en el panel de Supabase, y explícame en una línea a quién deja escribir. Muy importante: no desactives RLS ni escribas una política que permita escribir a cualquiera, y no uses la clave service_role en el código del navegador bajo ningún concepto.
O el escáner de arriba ha encontrado algo y prefieres no tocarlo solo. En cualquiera de los dos casos esto ya es de los gordos y merece un humano: no es que no hayas sabido, es que has llegado al punto en que hace falta alguien que entre y lo vea por dentro.
Cita a partir de mañana
99 €
Elegimos hueco, miro tu app con calma y te digo qué pasa y cómo se arregla.
Hoy, en cola prioritaria
199 €
Entras en la cola de hoy. Reservas hueco y lo dejamos resuelto en el día.
Marc Sala
IT Manager
No es un rating anónimo de un marketplace: es la persona que va a entrar en tu app. Reviso el código, encuentro qué falla y lo arreglo contigo delante.