Este documento contiene una lista de tareas de prácticas recomendadas y consideraciones antes de lanzar una app de Firebase a producción.
Prácticas recomendadas generales para lanzamientos
Asegúrate de probar todos los cambios en Firebase Local Emulator Suite (para productos compatibles) antes de implementarlos en producción. Las pruebas exhaustivas pueden ayudar a evitar errores costosos.
Comienza a aplicar Firebase App Check para cada servicio que lo admita. App Check ayuda a garantizar que solo tus apps reales puedan acceder a tus servicios y recursos de backend.
Usa lanzamientos de Firebase Remote Config para lanzar funciones nuevas y actualizaciones de tu app de forma segura y gradual.
Si aún no lo hiciste, considera configurar Firebase Crashlytics. Se trata de una herramienta liviana para informar fallas en tiempo real que te ayuda a hacer un seguimiento de los problemas de estabilidad que afectan la calidad de tu app, a priorizarlos y a corregirlos.
Conoce los límites de tu plan de precios y establece alertas de presupuesto
Asegúrate de no alcanzar los límites y las cuotas de uso después de pasar a producción, en especial si tienes el plan Spark sin costo. Considera actualizar al plan de precios Blaze de pago por uso.
Configura alertas de presupuesto para tu proyecto.
Ten en cuenta que las alertas de presupuesto no son límites de presupuesto. Una alerta te enviará comunicaciones cuando te acerques o superes el umbral configurado para que puedas tomar medidas en tu app o proyecto.
Considera configurar alertas y acciones avanzadas, como funciones que inhabiliten la facturación en respuesta a alertas.
Supervisa tu uso en los paneles específicos del producto o en el panel Uso y facturación central de Firebase console.
Asegúrate de que tus apps y proyectos de Firebase sigan las prácticas recomendadas
Ya sea que trabajes como desarrollador independiente o en un equipo de gran tamaño, es importante asegurarse de que tus proyectos, apps y recursos de Firebase estén protegidos, seguros y puedan evolucionar con los cambios en tu equipo.
Es útil recordar que un proyecto de Firebase es, en realidad, un proyecto de Google Cloud con servicios y parámetros de configuración de Firebase habilitados. Esto significa que muchas de las prácticas recomendadas que recomienda Google Cloud también se aplican a Firebase.
Usa diferentes proyectos de Firebase para el desarrollo, las pruebas y la producción.
Intenta limitar la exposición inesperada al proyecto asociado con tu app de producción. Obtén más información para configurar flujos de trabajo de desarrollo.
Protege tus proyectos importantes, en especial el asociado con tu app de producción.
Usa retenciones del proyecto para protegerte contra la eliminación accidental de proyectos.
Aplica una etiqueta "Prod" en Firebase console para facilitar la identificación de tu entorno de producción.
Si aún no lo has hecho, considera configurar una organización de Google Cloud y agregar tus proyectos de Firebase a ella.
Agrega más de un propietario a tus proyectos de Firebase, especialmente si tu proyecto no está en una organización de Google Cloud. Obtén más información sobre cuándo y cómo asignar propietarios para un proyecto de Firebase.
Agrega miembros del proyecto (también conocidos como "principales") como Grupos de Google en lugar de hacerlo de forma individual.
El uso de grupos facilita la asignación masiva de roles a los miembros del equipo, así como la administración de quién tiene acceso a tu proyecto de Firebase, en especial si los miembros del equipo rotan o se van.
Otorga a cada miembro del proyecto (también conocido como “principal”) el nivel de acceso adecuado a tus proyectos y recursos de Firebase. Obtén más información en Administra el acceso al proyecto con Firebase IAM.
Asegúrate de que cada miembro del proyecto aplicable (también conocido como "principal") configure sus preferencias para recibir alertas sobre productos específicos o el estado del proyecto (como cambios en el plan de facturación o límites de cuota). Obtén más información en Recibe alertas de Firebase.
Restringe tus claves de API de Firebase solo a las APIs que deben estar en la lista de entidades permitidas de la API de la clave. Además, consulta la información sobre las claves de API en la lista de tareas de seguridad de Firebase.
Prepara los servicios específicos que se usan en tu app
Cada producto y servicio que se usa en tu app puede tener consideraciones específicas cuando se usa en producción.
Google Analytics
Define las condiciones del público para que Google Analytics comience a recopilar datos de estadísticas a partir del lanzamiento de tu aplicación.
Considera habilitar la exportación de datos de Google Analytics a BigQuery para que puedas analizar tus datos con BigQuery SQL o exportarlos para usarlos con tus propias herramientas.
Limita las propiedades del usuario a la información que será relevante para el ciclo de vida de toda tu app. Existe un límite para la cantidad que puedes crear, y no se pueden archivar.
Revisa la configuración de los roles de Google Analytics para tus propiedades y cuentas de Google Analytics. Estos permisos se administran por separado de los permisos y roles de IAM del proyecto de Firebase.
Asegúrate de que el ID de la tienda de aplicaciones y el ID de equipo (si es necesario) sean correctos en Configuración del proyecto de Firebase console.
App Check
Asegúrate de que el ID de equipo sea correcto en Configuración del proyecto de Firebase console.
Si aún no lo hiciste, comienza a aplicar Firebase App Check para cada servicio que lo admita. App Check ayuda a garantizar que solo tus apps reales puedan acceder a tus servicios y recursos de backend.
Authentication
Inhabilita los proveedores que no estés usando (en especial, la autenticación anónima).
Si tu app usa Acceder con Google, personaliza la pantalla de consentimiento de OAuth.
Personaliza tu dominio y el remitente del servicio de envío de correos electrónicos de Authentication.
Si usas los servicios de verificación por SMS de Identity Platform, comienza a aplicar Firebase App Check y configura una política de región de SMS para proteger tu app del abuso de SMS.
Implementa el manejo de errores en las plataformas de Apple para los errores de Authentication comunes.
Agrega un hash SHA-1 de actualización para el certificado de firma de tu app en Configuración del proyecto de Firebase console. El hash SHA-1 es obligatorio si tu app usa el acceso con número de teléfono o la función Acceder con Google (que tiene un requisito de cliente de OAuth).
Agrega un control de acceso para tus dominios para evitar el uso no autorizado. Específicamente, permite el acceso a tu dominio de producción en la sección Authentication de Firebase console (esto es especialmente importante si usas productos que dependen de Firebase Security Rules).
Cloud Firestore
Configura tu Cloud Firestore Security Rules para evitar el acceso no intencional a los datos.
Usa ProGuard para la reducción de código en tu compilación de lanzamiento. Sin ProGuard, el SDK de Cloud Firestore y sus dependencias pueden aumentar el tamaño de tu APK.
Cloud Messaging
Considera habilitar la exportación de datos de Cloud Messaging a BigQuery para que puedas analizar tus datos con BigQuery SQL o exportarlos para usarlos con tus propias herramientas.
Sube tu clave de autenticación de APNS para Cloud Messaging en las apps para Apple en Firebase console. Si usas certificados APNS, asegúrate de subir tu certificado APNS de producción.
Cloud Storage
- Configura tu Cloud Storage Security Rules para evitar el acceso no intencional a los datos.
Crashlytics
Asegúrate de que cada miembro del proyecto aplicable (también conocido como "principal") configure sus preferencias para recibir alertas sobre Crashlytics o el estado del proyecto (como cambios en el plan de facturación o límites de cuota). Obtén más información en Recibe alertas de Firebase.
Considera habilitar la exportación de datos de Crashlytics a BigQuery para que puedas analizar tus datos con BigQuery SQL o exportarlos para usarlos con tus propias herramientas.
(solo para iOS y Android nativos) Considera habilitar la asistencia de IA en Crashlytics para acelerar el tiempo que tardas en comprender por qué se produjo una falla y qué hacer al respecto.
Sube el archivo dSYM para las compilaciones de lanzamiento para usarlo en Crashlytics. Asegúrate de que Xcode pueda procesar automáticamente los archivos dSYM y subirlos.
Sube la asignación de ProGuard para compilaciones de lanzamiento para usarla en Crashlytics. Puedes subir archivos con Firebase CLI.
Vincula Firebase a Google Play para obtener una vista más completa del estado de tu app para Android. Por ejemplo, puedes filtrar los informes de fallas de la app por el segmento de Google Play, lo que te permite enfocar mejor el panel en compilaciones específicas.
En el caso de las compilaciones orientadas a Android y que usan IL2CPP, asegúrate de subir símbolos nativos para cada ejecución de compilación individual para la que deseas tener símbolos, independientemente de si hubo cambios en el código o la configuración.
Dynamic Links
- Dynamic Links dejó de estar disponible, por lo que te recomendamos que migres del servicio. Obtén más información en las preguntas frecuentes sobre la baja.
Firebase ML
Consulta Prepara tu app para Apple que implementa Firebase ML para la producción.
Consulta Prepara la app para Android que implementa Firebase ML para la producción.
Performance Monitoring
Asegúrate de que cada miembro del proyecto aplicable (también conocido como "principal") configure sus preferencias para recibir alertas sobre Performance Monitoring o el estado del proyecto (como cambios en el plan de facturación o límites de cuota). Obtén más información en Recibe alertas de Firebase.
Considera habilitar la exportación de datos de Performance Monitoring a BigQuery para que puedas analizar tus datos con BigQuery SQL o exportarlos para usarlos con tus propias herramientas.
Realtime Database
Configura tu Realtime Database Security Rules para evitar el acceso no intencional a los datos.
Asegúrate de tener todo listo para escalar. Realtime Database tiene una cuota predeterminada lo suficientemente grande para la mayoría de las aplicaciones, pero algunas apps pueden necesitar capacidad adicional.
Configura tus reglas de ProGuard para que funcionen con Realtime Database.
Remote Config
- Asegúrate de que ninguna regla experimental de Remote Config afecte a los usuarios de la versión y de que se distribuyan los valores predeterminados adecuados del servidor y de la app en tu app.