# Cerca de Ti — implementación segura ## Lo construido - `cerca-de-ti-crm.html`: landing responsive, formulario de prospectos, acceso y portal por rol. - `cerca-de-ti-firebase.js`: Firebase Authentication + Realtime Database en tiempo real. - `firebase-rules.json`: reglas de producción. Un cliente solo consulta sus propias solicitudes; administración ve CRM, clientes y operación. ## Configuración requerida en Firebase 1. En **Authentication > Sign-in method**, habilita **Email/Password**. 2. En **Realtime Database > Rules**, reemplaza las reglas de prueba por el contenido de `firebase-rules.json` y publica. 3. Crea las cuentas en **Authentication > Users**. Usa correos reales o internos, por ejemplo `pilar@tu-dominio.com`. No se almacenan contraseñas en Realtime Database. 4. Obtén el UID de Pilar y crea este perfil en Realtime Database con un entorno administrativo de confianza (Firebase Console, Admin SDK o Cloud Function): ```json { "profiles": { "UID_DE_PILAR": { "name": "Pilar", "email": "pilar@tu-dominio.com", "role": "admin", "createdAt": 1760000000000 } } } ``` 5. Para cada cliente, usa `role: "client"`. No asignes roles desde el navegador. ## Despliegue en Webdix Sube juntos estos dos archivos al directorio público que corresponda al dominio configurado: ``` cerca-de-ti-crm.html cerca-de-ti-firebase.js ``` Después configura una redirección o renombra `cerca-de-ti-crm.html` a `index.html`. El host, IP, usuario y contraseña de Webdix no fueron incluidos en la solicitud, por lo que no se realizó ninguna conexión ni despliegue externo. ## Seguridad importante No uses reglas globales `.read: true` y `.write: true` en producción. Esas reglas hacen pública toda la base y permiten a cualquier visitante modificar o borrar la información. Firebase indica que las reglas son el control que decide todas las lecturas y escrituras, y que una regla permisiva en una ruta padre se hereda a toda su descendencia. Consulta la [documentación de reglas de Realtime Database](https://firebase.google.com/docs/database/security) y la [guía de Authentication](https://firebase.google.com/docs/auth/web/start). No se generaron usuarios con una contraseña compartida. Para un sistema real se deben usar contraseñas únicas y fuertes, entregar una contraseña temporal por canal seguro y pedir su cambio en el primer acceso.