Información sobre los proyectos de Firebase

En esta página se ofrecen descripciones generales breves de diversos conceptos importantes acerca de los proyectos de Firebase. Cuando se proporcionen, sigue los vínculos para ver información más detallada sobre las funciones, los servicios y también otras plataformas. En la parte inferior de esta página, podrás encontrar un listado de las recomendaciones generales para los proyectos de Firebase.

Relación entre los proyectos, las apps y los productos de Firebase

Un proyecto de Firebase es la entidad de nivel superior de Firebase. En tu proyecto, puedes agregar apps de Firebase que sean para iOS, Android o la Web. Después de configurar tus apps a fin de usar Firebase, puedes agregar los SDK de Firebase para los productos de Firebase que quieras, como Analytics, Cloud Firestore, Performance Monitoring o Remote Config.

Obtén información más detallada sobre este proceso en las guías de introducción (iOS | Android | Web | Unity | C++).

Relación entre los proyectos de Firebase y Google Cloud Platform (GCP)

Cuando creas un proyecto de Firebase nuevo en Firebase console, lo que en realidad estás creando es un proyecto de Google Cloud Platform (GCP). Un proyecto de GCP puede considerarse como un contenedor virtual de datos, código, configuración y servicios. Un proyecto de Firebase es un proyecto de GCP con configuraciones y servicios adicionales específicos de Firebase. Incluso puedes crear un proyecto de GCP primero y agregar Firebase al proyecto posteriormente.

Ya que un proyecto de Firebase es un proyecto de GCP, ocurre lo siguiente:

  • Los proyectos que aparecen en Firebase console también aparecen en GCP Console y en la Consola de API de Google.

  • La facturación y los permisos de los proyectos se comparten entre Firebase y GCP.

  • Los identificadores únicos de un proyecto (como el número y el ID) se comparten entre Firebase y GCP.

  • Puedes usar productos y API tanto de Firebase como de GCP en tu proyecto.

  • Si se borra un proyecto, se borra de Firebase y GCP.

Configura un proyecto de Firebase y agrega apps

En Firebase console puedes configurar un proyecto de Firebase y agregar las apps (o, en casos prácticos avanzados, puedes hacerlo mediante la API de REST para la administración de Firebase). Cuando configuras un proyecto y agregas las apps, debes tomar varias decisiones de configuración y agregar objetos o archivos de configuración especiales a tus proyectos locales.

Asegúrate de revisar algunas prácticas recomendadas generales antes de configurar el proyecto y agregar las apps.

Nombre del proyecto

Cuando creas un proyecto, debes proporcionarle un nombre. Este identificador es el nombre de uso interno que tendrá el proyecto en Firebase console, GCP Console y Firebase CLI. El nombre del proyecto no se expone en productos, servicios o recursos públicamente visibles de Firebase o GCP; su propósito es ayudarte a distinguir los proyectos con más facilidad.

Puedes editar el nombre del proyecto en cualquier momento en la  Configuración del proyecto. Este identificador aparece en el panel de la parte superior.

Número del proyecto

Tu proyecto de Firebase (y su proyecto de GCP asociado) tiene un número de proyecto, que corresponde a su identificador canónico y único a nivel global. Úsalo cuando configures integraciones o realices llamadas a las API de Firebase, Google o servicios de terceros.

Llamadas a la API y número del proyecto

Muchas llamadas a la API requieren que incluyas un identificador único para tu proyecto. Si bien varias API aceptan el ID del proyecto, se recomienda usar el número de este para realizar llamadas a las API de Firebase, Google o servicios de terceros.

Obtén más información para usar identificadores de proyectos, especialmente el número de tu proyecto, en el estándar AIP 2510 de Google.

Busca el número del proyecto

  • En Firebase CLI, ejecuta firebase projects:list. Se mostrará el número del proyecto junto con todos los proyectos de Firebase asociados a tu cuenta.

  • En la API de REST de Firebase Management, llama a projects.list. El cuerpo de la respuesta contendrá el número del proyecto en el objeto FirebaseProject.

ID del proyecto

Tu proyecto de Firebase (y su proyecto de GCP asociado) tiene un ID, que corresponde a un identificador único y definido por el usuario en todo Firebase y GCP. Cuando creas un proyecto de Firebase, el sistema le asigna automáticamente un ID único, el cual puedes editar durante la configuración. Por lo general, debes considerar este identificador como un alias de conveniencia para referirse a tu proyecto.

Si borras un proyecto, también se borra su ID y no se puede volver a usar en otros proyectos.

Recursos de Firebase y el ID del proyecto

El ID del proyecto se muestra en recursos de Firebase visibles de forma pública, por ejemplo:

  • Subdominio predeterminado de Hosting: projectID.web.app y projectID.firebaseapp.com
  • URL predeterminada de Realtime Database: projectID.firebaseio.com
  • Nombre predeterminado del depósito de Cloud Storage: projectID.appspot.com

Para todos los recursos anteriormente mencionados, puedes crear instancias no predeterminadas. Los nombres visibles de forma pública de los recursos no predeterminados se pueden personalizar en su totalidad. Puedes conectar dominios personalizados a tu sitio alojado en Firebase, fragmentar tu base de datos de Realtime Database y crear varios depósitos de Cloud Storage (visita la página de introducción de tu plataforma).

Firebase CLI y el ID del proyecto

En algunos casos prácticos, es posible que tengas diversos proyectos de Firebase asociados con el mismo directorio local de apps. En estos casos, cuando usas Firebase CLI, debes pasar la marca --project con los comandos firebase para indicar con qué proyecto de Firebase deseas interactuar.

Además, puedes configurar alias de proyectos para tus diversos proyectos de Firebase, así no tendrás que recordar los ID de cada proyecto.

Llamadas a la API y el ID del proyecto

Muchas llamadas a la API requieren que incluyas un identificador único para tu proyecto. Si bien varias API aceptan el ID del proyecto, se recomienda usar el número de este para realizar llamadas a las API de Firebase, Google o servicios de terceros.

Obtén más información para usar identificadores de proyectos, especialmente el número de tu proyecto, en el estándar AIP 2510 de Google.

Encuentra el ID del proyecto

  • En Firebase console, haz clic en  > Configuración del proyecto. Se mostrará el ID del proyecto en el panel de la parte superior.

  • En Firebase CLI, ejecuta firebase projects:list. Se mostrará el ID del proyecto junto con todos los proyectos de Firebase asociados a tu cuenta.

  • En la API de REST de Firebase Management, llama a projects.list. El cuerpo de la respuesta contendrá el ID del proyecto en el objeto FirebaseProject.

Objetos o archivos de configuración de Firebase

Cuando agregas una app a tu proyecto de Firebase, Firebase console proporciona un archivo de configuración de Firebase (Android/iOS) o un objeto de configuración (Web) que agregas directamente a tu proyecto local.

  • Para iOS, agrega un archivo de configuración GoogleService-Info.plist.
  • Para Android, agrega un archivo de configuración google-services.json.
  • Para la Web, debes agregar un objeto de configuración de Firebase para las secuencias de comandos de inicialización.

Puedes obtener los archivos o los objetos de configuración de Firebase en cualquier momento.

Los objetos o archivos de configuración de Firebase asocian las apps a los proyectos de Firebase y sus recursos (bases de datos, depósitos de almacenamiento, etc.). La configuración incluye “opciones de Firebase”, que son parámetros obligatorios de Firebase y los servicios de Google para comunicarse con las API del servidor de Firebase y asociar los datos del cliente con tu proyecto y aplicación de Firebase. El conjunto mínimo y obligatorio de opciones de Firebase es el siguiente:

  • Clave de API: Es una string encriptada simple que se usa para llamar a ciertas API que no requieren acceso a los datos privados del usuario (valor de ejemplo: AIzaSyDOCAbC123dEf456GhI789jKl012-MnO).

  • ID del proyecto: Es un identificador único de tu proyecto en Firebase y GCP, el cual lo define el usuario (valor de ejemplo: myapp-project-123). Este identificador puede aparecer en las URL o los nombres de algunos recursos de Firebase y, por lo general, debe considerarse como un alias de conveniencia para referirse a tu proyecto.

  • ID de aplicación (“AppID”): Es un identificador único de tu app de Firebase en todo el servicio, con un formato que depende de la plataforma:

    • Apps de Firebase para Android: mobilesdk_app_id (valor de ejemplo: 1:1234567890:android:321abc456def7890)
      No es un nombre de paquete de Android.
    • Apps de Firebase para iOS: GOOGLE_APP_ID (valor de ejemplo: 1:1234567890:ios:321abc456def7890)
      No es un ID de paquete de Apple.
    • Apps web de Firebase: appId (valor de ejemplo: 1:65211879909:web:3ae38ef1cdcb2e01fe5f0c)

El contenido del archivo de configuración de Firebase se considera público, incluido el ID específico de la plataforma (que ingresaste en el flujo de trabajo de configuración de Firebase console) y los valores específicos de tu proyecto de Firebase, como la clave de API, la URL de Realtime Database y el nombre del depósito de Storage. Por ello debes usar reglas de seguridad para proteger los datos y los archivos que almacenas en Realtime Database, Cloud Firestore y Cloud Storage.

En el caso de los proyectos de código abierto, por lo general, no se recomienda incluir el archivo o el objeto de configuración de Firebase en el control del código fuente, ya que, en la mayoría de los casos, los usuarios deben crear sus propios proyectos de Firebase y dirigir sus apps a sus backends.

Administra un proyecto de Firebase

Procura revisar las prácticas recomendadas generales del nivel de proyecto para conocer las consideraciones que podrían afectar la forma en que administras tu proyecto de Firebase.

Herramientas para administrar tu proyecto

Firebase console

Firebase console ofrece el entorno más completo para administrar productos de Firebase, apps y configuraciones en el nivel del proyecto.

Pantalla de descripción general del proyecto en Firebase console

En el panel de la izquierda de la consola se enumeran los productos de Firebase, organizados en categorías de nivel superior. En la parte superior del panel de la izquierda, haz clic en para acceder a la configuración del proyecto (esta incluye las integraciones, los permisos de acceso y la facturación).

La parte central de la consola muestra botones que inician flujos de trabajo de configuración para agregar varios tipos de apps. Cuando comienzas a usar Firebase, el área principal de la consola cambia a un panel que muestra estadísticas sobre los productos que usas.

Firebase CLI (una herramienta de línea de comandos)

Firebase también ofrece Firebase CLI que permite configurar y administrar productos de Firebase específicos, como Firebase Hosting y Cloud Functions para Firebase.

Después de instalar la CLI con npm, tendrás acceso al comando global de firebase. Usa la CLI para implementar versiones nuevas del contenido alojado en Firebase o actualizaciones de las funciones. Con la CLI, también puedes vincular el directorio de la app local con el proyecto de Firebase.

API de REST de Firebase Management

Con la API de REST para la administración de Firebase, puedes administrar tu proyecto de Firebase de manera programática. Por ejemplo, puedes agregar de manera programática una app para Android o una app para iOS con tu proyecto. También puedes generar listas de las apps (Android o iOS) que están en tu proyecto.

Prácticas recomendadas generales

Agregar apps a un proyecto

Asegúrate de que todas las apps dentro de un proyecto sean variantes de plataforma de la misma aplicación desde la perspectiva del usuario final. Se recomienda agregar las versiones de Android, iOS y la Web de la misma app o juego al mismo proyecto de Firebase. Generalmente, todas las apps de un proyecto comparten los mismos recursos de Firebase (bases de datos, depósitos de almacenamiento, etcétera).

Si tienes múltiples variantes de compilación con diferentes ID de paquetes de iOS o ID de apps para Android definidos, puedes agregar cada variante a un proyecto de Firebase distinto. Sin embargo, si tienes variantes que comparten los mismos recursos de Firebase, agrégalos al mismo proyecto de Firebase.

Si bien no existe una restricción para la cantidad de apps dentro de un proyecto, agregar una app puede crear uno o más ID de cliente de OAuth 2.0 subyacentes. Hay un límite de aproximadamente 30 ID de cliente que se pueden crear dentro de un mismo proyecto.

Multiusuario

No se recomienda conectar varias apps o sitios web independientes y diferentes a nivel lógico al mismo proyecto (lo que a menudo se conoce como “instancias múltiples”). Esta modalidad puede generar problemas graves de configuración y privacidad de los datos, incluidos algunos no intencionales relacionados con la agregación de estadísticas, la autenticación compartida, las estructuras de bases de datos demasiado complejas, además de dificultades con las reglas de seguridad.

Por lo general, si un conjunto de apps no comparte los mismos datos y configuraciones, considera agregar cada app a un proyecto de Firebase diferente.

Por ejemplo, si desarrollas una aplicación sin marca, cada app etiquetada de forma independiente debe tener su propio proyecto de Firebase. De esta manera, las apps no comparten, y no debieran hacerlo por motivos de privacidad, datos con las demás.

Ten en cuenta algunos límites generales para los proyectos, las apps y los sitios de Firebase:

  • Cantidad de proyectos por cuenta

    • Con el plan Spark del nivel gratuito, tu cuota se limita a unos pocos proyectos (usualmente alrededor de 5 a 10).
    • Con los planes pagados, tu cuota de proyectos aumenta sustancialmente por cada cuenta de facturación, siempre y cuando la cuenta de facturación de Cloud esté en regla.

    El límite de cuota de proyectos no suele ser una preocupación para la mayoría de los desarrolladores. Sin embargo, si necesitas aumentar tu cuota, puedes solicitar un aumento.

    Recuerda que se requieren 30 días para borrar por completo un proyecto, y que este se considera en la cuota hasta que el proceso se haya completado.

  • Cantidad de apps por proyecto

    Si bien no existe una restricción para la cantidad de apps dentro de un proyecto, agregar una app puede crear uno o más ID de cliente de OAuth 2.0 subyacentes. Hay un límite de aproximadamente 30 ID de cliente que se pueden crear dentro de un mismo proyecto.

  • Cantidad de sitios de hosting por proyecto

    La función de varios sitios de Firebase Hosting admite un máximo de 36 sitios por proyecto.

Lanza tu app