Agrega Firebase a tu proyecto C++

Mejora tus juegos de C++ con nuestros SDK de Firebase C++, que proporcionan una interfaz de C++ además de los SDK de Firebase.

Accede a Firebase completamente desde tu código C++, sin tener que escribir ningún código nativo de la plataforma. El SDK de Firebase también traduce muchos modismos específicos del lenguaje utilizados por Firebase a una interfaz más familiar para los desarrolladores de C++.

Obtén más información sobre cómo potenciar tus juegos con Firebase en nuestra página de juegos de Firebase .

¿Ya agregaste Firebase a tu proyecto C++? Asegúrate de estar usando la última versión del SDK de Firebase C++ .

Requisitos previos

  • Instale lo siguiente:

    • Xcode 13.3.1 o posterior
    • CocoaPods 1.12.0 o posterior
  • Asegúrese de que su proyecto esté dirigido a las siguientes versiones de plataforma o posteriores:

    • iOS 11
    • tvOS 12
  • Configure un dispositivo físico o use el simulador para ejecutar su aplicación.

  • Inicie sesión en Firebase con su cuenta de Google.

Paso 2 : crea un proyecto de Firebase

Antes de poder agregar Firebase a su proyecto de C++, debe crear un proyecto de Firebase para conectarse a su proyecto de C++. Visita Comprender los proyectos de Firebase para obtener más información sobre los proyectos de Firebase.

Paso 3 : registra tu aplicación en Firebase

Para usar Firebase en su aplicación de Apple, debe registrar su aplicación con su proyecto de Firebase. Registrar su aplicación a menudo se denomina "agregar" su aplicación a su proyecto.

  1. Vaya a la consola de Firebase .

  2. En el centro de la página de descripción general del proyecto, haga clic en el ícono de iOS+ para iniciar el flujo de trabajo de configuración.

    Si ya agregó una aplicación a su proyecto de Firebase, haga clic en Agregar aplicación para mostrar las opciones de la plataforma.

  3. Ingrese el ID del paquete de su aplicación en el campo ID del paquete .

  4. (Opcional) Ingrese otra información de la aplicación: apodo de la aplicación y ID de la App Store .

  5. Haga clic en Registrar aplicación .

Paso 4 : agregue el archivo de configuración de Firebase

  1. Haga clic en Descargar GoogleService-Info.plist para obtener el archivo de configuración de su plataforma Firebase Apple.

  2. Abra su proyecto C++ en un IDE, luego arrastre su archivo de configuración a la raíz de su proyecto C++.

  3. Si se le solicita, seleccione agregar el archivo de configuración a todos los destinos.

Ya terminaste con las tareas de configuración en Firebase console. Continúe agregando los SDK de Firebase C++ a continuación.

Paso 5 : Agregar los SDK de Firebase C++

Los pasos de esta sección son un ejemplo de cómo agregar productos de Firebase compatibles a su proyecto de Firebase C++.

  1. Descargue el SDK de Firebase C++ y luego descomprímalo en algún lugar conveniente.

    El SDK de Firebase C++ no es específico de la plataforma, pero contiene bibliotecas específicas de la plataforma.

  2. Agregue pods de Firebase desde el SDK descomprimido.

    1. Cree un Podfile si aún no tiene uno:

      cd your-app-directory
      pod init

    2. A tu Podfile, agrega los pods de Firebase que deseas usar en tu aplicación.

      Análisis habilitado

      # Add the Firebase pod for Google Analytics
      pod 'FirebaseAnalytics'
      # Add the pods for any other Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'

      Análisis no habilitado

      # Add the pods for the Firebase products you want to use in your app
      # For example, to use Firebase Authentication and Firebase Realtime Database
      pod 'FirebaseAuth'
      pod 'FirebaseDatabase'
    3. Instale los pods, luego abra el archivo .xcworkspace en Xcode.

      pod install
      open your-app.xcworkspace

  3. Agregue marcos de Firebase desde el SDK descomprimido.

    La forma más sencilla de agregar estos marcos suele ser arrastrarlos desde una ventana Finder directamente al panel Navegador de proyectos de Xcode (el panel del extremo izquierdo, de forma predeterminada; o hacer clic en el icono de archivo en la parte superior izquierda de Xcode).

    1. Agregue el marco Firebase C++ firebase.framework , que es necesario para usar cualquier producto Firebase.

    2. Agrega el marco para cada producto de Firebase que quieras usar. Por ejemplo, para usar Firebase Authentication, agregue firebase_auth.framework .

  4. De vuelta en Firebase console, en el flujo de trabajo de configuración, haz clic en Siguiente .

  5. Si agregaste Analytics, ejecuta tu aplicación para enviar una verificación a Firebase de que has integrado Firebase correctamente. De lo contrario, puede omitir este paso de verificación.

    Los registros de su dispositivo mostrarán la verificación de Firebase de que la inicialización está completa. Si ejecutaste tu aplicación en un emulador que tiene acceso a la red, Firebase console te notifica que la conexión de tu aplicación está completa.

¡Estás listo! Su aplicación C++ está registrada y configurada para usar productos de Firebase.

Bibliotecas disponibles

Obtenga más información sobre las bibliotecas de C++ Firebase en la documentación de referencia y en nuestra versión del SDK de código abierto en GitHub .

Bibliotecas disponibles para plataformas Apple

Tenga en cuenta que las bibliotecas de C++ para Android se enumeran en la versión de Android de esta página de configuración .

Cada producto de Firebase tiene diferentes dependencias. Asegúrese de agregar todas las dependencias enumeradas para el producto Firebase deseado a su proyecto Podfile y C++.

Es posible que cada producto de Firebase solo admita una selección de plataformas de sistema operativo Apple (iOS, tvOS, etc.). Compruebe qué plataformas son compatibles con cada biblioteca en Obtenga más información sobre C++ y Firebase .

Producto base de fuego Marcos y pods
AdMob (obligatorio) firebase.framework
firebase_admob.framework
(obligatorio) firebase_analytics.framework

pod 'FirebaseAdMob', '10.22.0'
(obligatorio) pod 'FirebaseAnalytics', '10.22.0'
Analítica (obligatorio) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '10.22.0'
Verificación de aplicaciones (obligatorio) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '10.22.0'
Autenticación (obligatorio) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '10.22.0'
Tienda de fuego en la nube (obligatorio) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '10.22.0'
pod 'FirebaseAuth', '10.22.0'
Funciones de la nube (obligatorio) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.22.0'
Mensajería en la nube (obligatorio) firebase.framework
firebase_messaging.framework
(recomendado) firebase_analytics.framework

pod 'FirebaseMessaging', '10.22.0'
(recomendado) pod 'FirebaseAnalytics', '10.22.0'
Almacenamiento en la nube (obligatorio) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.22.0'
Enlaces dinámicos (obligatorio) firebase.framework
firebase_dynamic_links.framework
(recomendado) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '10.22.0'
(recomendado) pod 'FirebaseAnalytics', '10.22.0'
Base de datos en tiempo real (obligatorio) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.22.0'
Configuración remota (obligatorio) firebase.framework
firebase_remote_config.framework
(recomendado) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '10.22.0'
(recomendado) pod 'FirebaseAnalytics', '10.22.0'

Información adicional para la configuración móvil

Método de giro

En iOS, algunos eventos de aplicaciones (como abrir URL y recibir notificaciones) requieren que el delegado de su aplicación implemente métodos específicos. Por ejemplo, recibir una notificación puede requerir que el delegado de su aplicación implemente application:didReceiveRemoteNotification: . Debido a que cada aplicación de iOS tiene su propio delegado de aplicación, Firebase utiliza el método swizzling , que permite reemplazar un método por otro, para adjuntar sus propios controladores además de cualquiera que haya implementado.

Las bibliotecas Dynamic Links y Cloud Messaging deben adjuntar controladores al delegado de la aplicación mediante el método swizzling. Si está utilizando cualquiera de estos productos de Firebase, en el momento de la carga, Firebase identificará su clase AppDelegate y agregará los métodos necesarios a ella, encadenando una llamada a la implementación de su método existente.

Configurar un flujo de trabajo de escritorio ( beta )

Cuando estás creando un juego, a menudo es mucho más fácil probarlo primero en plataformas de escritorio y luego implementarlo y probarlo en dispositivos móviles más adelante en el desarrollo. Para respaldar este flujo de trabajo, proporcionamos un subconjunto de SDK de Firebase C++ que se pueden ejecutar en Windows, macOS, Linux y desde el editor de C++.

  1. Para flujos de trabajo de escritorio, debe completar lo siguiente:

    1. Configure su proyecto C++ para CMake.
    2. Crear un proyecto de Firebase
    3. Registre su aplicación (iOS o Android) con Firebase
    4. Agregar un archivo de configuración de Firebase para plataforma móvil
  2. Cree una versión de escritorio del archivo de configuración de Firebase:

    • Si agregó el archivo google-services.json de Android : cuando ejecuta su aplicación, Firebase localiza este archivo móvil y luego genera automáticamente un archivo de configuración de Firebase de escritorio ( google-services-desktop.json ).

    • Si agregó el archivo iOS GoogleService-Info.plist : antes de ejecutar su aplicación, debe convertir este archivo móvil en un archivo de configuración de Firebase de escritorio . Para convertir el archivo, ejecute el siguiente comando desde el mismo directorio que su archivo GoogleService-Info.plist :

      generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist

    Este archivo de configuración de escritorio contiene el ID del proyecto C++ que ingresaste en el flujo de trabajo de configuración de Firebase console. Visite Comprender los proyectos de Firebase para obtener más información sobre los archivos de configuración.

  3. Agrega los SDK de Firebase a tu proyecto de C++.

    Los pasos a continuación sirven como ejemplo de cómo agregar cualquier producto Firebase compatible a su proyecto C++. En este ejemplo, explicamos cómo agregar Firebase Authentication y Firebase Realtime Database.

    1. Configure su variable de entorno FIREBASE_CPP_SDK_DIR en la ubicación del SDK de Firebase C++ descomprimido.

    2. Al archivo CMakeLists.txt de su proyecto, agregue el siguiente contenido, incluidas las bibliotecas para los productos de Firebase que desea usar. Por ejemplo, para usar Firebase Authentication y Firebase Realtime Database:

      # Add Firebase libraries to the target using the function from the SDK.
      add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
      
      # The Firebase C++ library `firebase_app` is required,
      # and it must always be listed last.
      
      # Add the Firebase SDKs for the products you want to use in your app
      # For example, to use Firebase Authentication and Firebase Realtime Database
      set(firebase_libs firebase_auth firebase_database firebase_app)
      target_link_libraries(${target_name} "${firebase_libs}")
      
  4. Ejecute su aplicación C++.

Bibliotecas disponibles (escritorio)

El SDK de Firebase C++ incluye compatibilidad con el flujo de trabajo de escritorio para un subconjunto de funciones, lo que permite usar ciertas partes de Firebase en compilaciones de escritorio independientes en Windows, macOS y Linux.

Producto base de fuego Referencias de biblioteca (usando CMake)
Verificación de aplicaciones firebase_app_check
(obligatorio) firebase_app
Autenticación firebase_auth
(obligatorio) firebase_app
Tienda de fuego en la nube firebase_firestore
firebase_auth
firebase_app
Funciones de la nube firebase_functions
(obligatorio) firebase_app
Almacenamiento en la nube firebase_storage
(obligatorio) firebase_app
Base de datos en tiempo real firebase_database
(obligatorio) firebase_app
Configuración remota firebase_remote_config
(obligatorio) firebase_app

Firebase proporciona las bibliotecas de escritorio restantes como implementaciones auxiliares (no funcionales) para mayor comodidad al compilar para Windows, macOS y Linux. Por lo tanto, no es necesario compilar código condicionalmente para apuntar al escritorio.

Escritorio de base de datos en tiempo real

El SDK de Realtime Database para escritorio usa REST para acceder a su base de datos, por lo que debe declarar los índices que usa con Query::OrderByChild() en el escritorio o sus oyentes fallarán.

Información adicional para la configuración del escritorio

bibliotecas de windows

Para Windows, las versiones de la biblioteca se proporcionan según lo siguiente:

  • Plataforma de compilación: modo de 32 bits (x86) frente a 64 bits (x64)
  • Entorno de ejecución de Windows: multiproceso/MT frente a DLL/MD multiproceso
  • Objetivo: lanzamiento versus depuración

Tenga en cuenta que las siguientes bibliotecas se probaron con Visual Studio 2015 y 2017.

Al crear aplicaciones de escritorio C++ en Windows, vincule las siguientes bibliotecas del SDK de Windows a su proyecto. Consulte la documentación de su compilador para obtener más información.

Biblioteca de Firebase C++ Dependencias de la biblioteca del SDK de Windows
Verificación de aplicaciones advapi32, ws2_32, crypt32
Autenticación advapi32, ws2_32, crypt32
Tienda de fuego en la nube advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
Funciones de la nube advapi32, ws2_32, crypt32, rpcrt4, ole32
Almacenamiento en la nube advapi32, ws2_32, crypt32
Base de datos en tiempo real advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Configuración remota advapi32, ws2_32, crypt32, rpcrt4, ole32

bibliotecas macos

Para macOS (Darwin), se proporcionan versiones de biblioteca para la plataforma de 64 bits (x86_64). También se proporcionan marcos para su conveniencia.

Tenga en cuenta que las bibliotecas de macOS se han probado con Xcode 13.3.1.

Al crear aplicaciones de escritorio C++ en macOS, vincule lo siguiente a su proyecto:

  • biblioteca del sistema pthread
  • Marco del sistema CoreFoundation macOS
  • Marco Foundation del sistema macOS
  • Marco Security del sistema macOS
  • Marco del sistema GSS macOS
  • Marco del sistema Kerberos macOS
  • SystemConfiguration del sistema macOS

Consulte la documentación de su compilador para obtener más información.

bibliotecas de linux

Para Linux, se proporcionan versiones de la biblioteca para plataformas de 32 bits (i386) y 64 bits (x86_64).

Tenga en cuenta que las bibliotecas de Linux se probaron utilizando GCC 4.8.0, GCC 7.2.0 y Clang 5.0 en Ubuntu.

Al crear aplicaciones de escritorio C++ en Linux, vincule la biblioteca del sistema pthread a su proyecto. Consulte la documentación de su compilador para obtener más información. Si está compilando con GCC 5 o posterior, defina -D_GLIBCXX_USE_CXX11_ABI=0 .

Próximos pasos