Inicio » Solución: Error de Firebase al denegar la lectura de la base de datos (Reglas de seguridad)
Web y Código

Solución: Error de Firebase al denegar la lectura de la base de datos (Reglas de seguridad)

Anuncio Google AdSense (Cabecera) Anuncio Adaptable / Display Ad

El Diagnóstico Rápido

El error Firebase Error: [code=permission-denied] ocurre cuando tu aplicación frontend (web o móvil) intenta leer, escribir o actualizar datos en Cloud Firestore o Realtime Database, pero el servidor de Firebase rechaza la solicitud porque las Reglas de Seguridad (Security Rules) del proyecto no otorgan los permisos necesarios.

Este fallo es sumamente común al pasar un proyecto de la etapa de desarrollo local a producción, o cuando expira el periodo de gracia del "Modo de prueba" (que suele durar 30 días).

🚀 Cómo solucionar el error paso a paso

Paso 1: Identificar el entorno de base de datos

Entra a tu consola de Firebase, selecciona tu proyecto y dirígete al apartado de Cloud Firestore o Realtime Database en el menú izquierdo, luego haz clic en la pestaña Rules (Reglas).

Paso 2: Configurar reglas seguras (Para Firestore)

Si tu base de datos estaba en modo de prueba, verás una regla que bloqueaba el acceso tras una fecha específica. Jamás uses reglas que permitan la lectura y escritura pública global (allow read, write: if true;) en producción, ya que cualquiera podría borrar tu base de datos.

Implementa una estructura condicional que exija que el usuario esté autenticado para poder modificar datos:

JAVASCRIPT
rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {
    // Permitir a cualquier usuario web leer el catálogo de productos o contenido público
    match /public_content/{document} {
      allow read: if true;
      allow write: if request.auth != null; // Solo usuarios registrados escriben
    }
    
    // Restringir colecciones privadas de usuarios (ej. carritos, pedidos, datos personales)
    match /users/{userId} {
      allow read, write: if request.auth != null && request.auth.uid == userId;
    }
  }
}

Paso 3: Publicar cambios

Haz clic en el botón Publish (Publicar) en la consola de Firebase. Los cambios en las reglas toman entre 1 y 2 minutos en propagarse globalmente. Reinicia tu aplicación cliente y los errores de permisos desaparecerán.