Usa nuestros SDK de Firebase C++ que ofrecen una interfaz de este lenguaje en SDK de Firebase para potenciar tus juegos de C++.
Accede a Firebase de forma íntegra por medio de tu código de C++ sin la necesidad de escribir código nativo de la plataforma. Además, el SDK de Firebase toma varias expresiones específicas del lenguaje de Firebase y las traduce a una interfaz más familiar para los desarrolladores de C++.
Obtén más información para mejorar tus juegos con Firebase en nuestra página de juegos de Firebase.
¿Ya agregaste Firebase a tu proyecto de C++? Asegúrate de usar la versión más reciente del SDK de Firebase C++.
Requisitos previos
Instala lo siguiente:
- Xcode 13.3.1 o una versión posterior
- CocoaPods 1.12.0 o una versión más reciente
Asegúrate de que tu proyecto se segmente a las siguientes versiones de la plataforma o versiones posteriores:
- iOS 11
- tvOS 12
Configura un dispositivo físico o usa el simulador para ejecutar tu app.
Accede a Firebase con tu Cuenta de Google.
Paso 2: Crea un proyecto de Firebase
Antes de que puedas agregar Firebase a tu proyecto de C++, tendrás que crear un proyecto de Firebase para conectarlo con el de C++. Consulta la Información sobre los proyectos de Firebase para obtener más detalles sobre el tema.
Paso 3: Registra tu app con Firebase
Si quieres usar Firebase en tu app para Apple, debes registrarla con el proyecto de Firebase. El registro de tu app a menudo se conoce como “agregar” la app a tu proyecto.
Dirígete a Firebase console.
En el centro de la página de descripción general del proyecto, haz clic en el ícono de iOS+ para iniciar el flujo de trabajo de configuración.
Si ya agregaste una app a tu proyecto de Firebase, haz clic en Agregar app para que se muestren las opciones de plataforma.
Ingresa el ID del paquete de la app en el campo ID del paquete.
Ingresa otra información, como el Sobrenombre de la app y el ID de App Store (opcional).
Haz clic en Registrar app.
Paso 4: Agrega el archivo de configuración de Firebase
Haz clic en Descargar GoogleService-Info.plist para obtener el archivo de configuración de Firebase para plataformas de Apple.
Abre tu proyecto de C++ en un IDE y arrastra el archivo de configuración al directorio raíz de tu proyecto de C++.
Si se te solicita, selecciona la opción para agregar el archivo de configuración a todos los destinos.
Completaste las tareas de configuración en Firebase console. Sigue con el paso Agrega los SDK de Firebase C++ que se muestra a continuación.
Paso 5: Agrega los SDK de Firebase C++
Los pasos que se indican en esta sección son un ejemplo de cómo agregar productos de Firebase admitidos a tu proyecto de Firebase C++.
Descarga el SDK de Firebase C++ y, luego, descomprímelo en la ubicación que prefieras.
El SDK de Firebase C++ no es específico de una plataforma, pero contiene bibliotecas que sí lo son.
Agrega los Pods de Firebase desde el SDK descomprimido.
Crea un Podfile si aún no tienes uno:
cd your-app-directory
pod init
En tu Podfile, agrega los Pods de Firebase que deseas usar en tu app.
Si Analytics está 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'Si Analytics está inhabilitado
# 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'
Instala los Pods y abre el archivo
.xcworkspace
en Xcode.pod install
open your-app.xcworkspace
Agrega los frameworks de Firebase desde el SDK descomprimido.
Por lo general, la manera más fácil de agregar estos frameworks es arrastrarlos directamente desde una ventana de
Finder
hacia el panel Project Navigator de Xcode (según la configuración predeterminada, este es el panel en el extremo izquierdo; o haz clic en el ícono de archivo en la parte superior izquierda de Xcode).Agrega el framework de Firebase C++
firebase.framework
, que es obligatorio para usar cualquier producto de Firebase.Agrega el framework de cada producto de Firebase que quieras usar. Por ejemplo, para usar Firebase Authentication, agrega
firebase_auth.framework
.
Vuelve a Firebase console y, en el flujo de trabajo de configuración, haz clic en Siguiente.
Si agregaste Analytics, ejecuta tu app para enviar la verificación a Firebase de que lo integraste correctamente. De lo contrario, puedes omitir este paso de verificación.
En los registros de tu dispositivo, se mostrará la verificación de Firebase cuando se complete la inicialización. Si ejecutaste tu app en un emulador que tiene acceso a redes, Firebase console notificará que se completó la conexión de tu app.
¡Listo! Tu app de C++ está registrada y configurada para usar productos de Firebase.
Bibliotecas disponibles
Consulta la documentación de referencia y la versión del SDK de código abierto en GitHub si necesitas más información sobre las bibliotecas de Firebase para C++.
Bibliotecas disponibles para plataformas de Apple
Recuerda que en la versión de Android de esta página de configuración se enumeran las bibliotecas de C++ para Android.
Cada producto de Firebase tiene dependencias diferentes. Procura agregar todas las dependencias enumeradas para el producto de Firebase que desees a tu Podfile y tu proyecto de C++.
Cada producto de Firebase solo admite una selección de plataformas de Apple OS (iOS, tvOS, etcétera). Consulta qué plataformas son compatibles con cada biblioteca en este vínculo Obtén más información sobre C++ y Firebase.
Producto de Firebase | Frameworks y Pods |
---|---|
AdMob | (obligatorio) firebase.framework firebase_admob.framework (obligatorio) firebase_analytics.framework pod 'FirebaseAdMob', '10.22.0' (obligatorio) pod 'FirebaseAnalytics', '10.22.0' |
Analytics |
(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'
|
Authentication |
(obligatorio) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '10.22.0'
|
Cloud Firestore |
(obligatorio) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '10.22.0' pod 'FirebaseAuth', '10.22.0'
|
Cloud Functions | (obligatorio) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '10.22.0'
|
Cloud Messaging | (obligatorio) firebase.framework firebase_messaging.framework (recomendado) firebase_analytics.framework pod 'FirebaseMessaging', '10.22.0' (recomendado) pod 'FirebaseAnalytics', '10.22.0' |
Cloud Storage | (obligatorio) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '10.22.0'
|
Dynamic Links | (obligatorio) firebase.framework firebase_dynamic_links.framework (recomendado) firebase_analytics.framework pod 'FirebaseDynamicLinks', '10.22.0' (recomendado) pod 'FirebaseAnalytics', '10.22.0' |
Realtime Database | (obligatorio) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '10.22.0'
|
Remote Config | (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 sobre la configuración para dispositivos móviles
Swizzling de métodos
En iOS, algunos eventos de aplicación (como abrir URLs y recibir
notificaciones) requieren que el delegado de la aplicación implemente métodos
específicos. Por ejemplo, recibir una notificación puede requerir que el delegado de la aplicación implemente application:didReceiveRemoteNotification:
. Debido a que cada aplicación de iOS tiene su propio delegado, Firebase utiliza swizzling de métodos, que permite reemplazar un método por otro para agregar sus propios controladores, además de los que ya hayas implementado.
Las bibliotecas de Dynamic Links y Cloud Messaging deben
adjuntar controladores al delegado de la aplicación mediante swizzling de métodos. Si utilizas alguno de estos productos de Firebase, cuando se carguen, Firebase identificará la clase AppDelegate
, agregará los métodos requeridos a ella y generará una devolución de llamada a la implementación del método existente.
Configura un flujo de trabajo para computadoras (versión beta)
Cuando creas un juego, suele ser más fácil probarlo primero en plataformas de computadoras de escritorio y, luego, implementarlo y probarlo en dispositivos móviles en una etapa posterior del desarrollo. Para admitir este flujo de trabajo, proporcionamos un subconjunto del SDK de Firebase C++ que se puede ejecutar en Windows, macOS, Linux y desde dentro del editor de C++.
Debes completar los siguientes pasos para los flujos de trabajo en computadoras de escritorio:
- Configura tu proyecto de C++ para CMake.
- Crea un proyecto de Firebase.
- Registra tu app (para iOS o Android) con Firebase.
- Agrega un archivo de configuración de Firebase de plataformas para dispositivos móviles.
Crea una versión para computadoras de escritorio del archivo de configuración de Firebase:
Si agregaste el archivo
google-services.json
de Android: Cuando ejecutas tu app, Firebase localiza este archivo para dispositivos móviles y genera automáticamente un archivo de configuración de Firebase para computadoras de escritorio (google-services-desktop.json
).Si agregaste el archivo
GoogleService-Info.plist
de iOS: Antes de ejecutar la app, debes convertir este archivo para dispositivos móviles en un archivo de configuración de Firebase para computadoras de escritorio. Para convertir el archivo, ejecuta el siguiente comando desde el mismo directorio que el archivoGoogleService-Info.plist
:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
Este archivo de configuración para computadoras de escritorio contiene el ID del proyecto de C++ que ingresaste en el flujo de trabajo de configuración de Firebase console. Consulta la Información sobre los proyectos de Firebase para obtener detalles acerca de los archivos de configuración.
Agrega los SDK de Firebase al proyecto de C++.
Los pasos que se indican a continuación sirven como ejemplo de cómo agregar cualquier producto compatible de Firebase al proyecto de C++. En este ejemplo, se explica cómo agregar Firebase Authentication y Firebase Realtime Database.
Establece la ubicación de la variable de entorno
FIREBASE_CPP_SDK_DIR
en la del SDK de Firebase C++ descomprimido.Agrega el siguiente contenido al archivo
CMakeLists.txt
de tu proyecto, incluidas las bibliotecas de los productos de Firebase que deseas usar. Por ejemplo, para usar Firebase Authentication y Firebase Realtime Database, haz lo siguiente:# 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}")
Ejecuta la app de C++.
Bibliotecas disponibles (para computadoras de escritorio)
El SDK de Firebase C++ incluye compatibilidad con flujos de trabajo de escritorio para un subconjunto de funciones, lo que permite usar ciertas partes de Firebase en versiones independientes para computadoras de escritorio en Windows, macOS y Linux.
Producto de Firebase | Referencias de la biblioteca (con CMake) |
---|---|
Verificación de aplicaciones |
firebase_app_check (obligatorio) firebase_app
|
Authentication |
firebase_auth (obligatorio) firebase_app
|
Cloud Firestore |
firebase_firestore firebase_auth firebase_app
|
Cloud Functions |
firebase_functions (obligatorio) firebase_app
|
Cloud Storage |
firebase_storage (obligatorio) firebase_app
|
Realtime Database |
firebase_database (obligatorio) firebase_app
|
Remote Config | firebase_remote_config (obligatorio) firebase_app
|
Las bibliotecas de escritorio restantes son implementaciones auxiliares (no funcionales) que Firebase proporciona para realizar compilaciones para Windows, macOS y Linux. Por lo tanto, no es necesario que compiles código de manera condicional orientado a la versión para computadoras de escritorio.
Realtime Database para computadoras de escritorio
El SDK de Realtime Database para computadoras de escritorio usa REST para acceder a tu base de datos, por lo que debes
declarar los índices que
usas con Query::OrderByChild()
en computadoras de escritorio. De lo contrario, los objetos de escucha no funcionarán.
Información adicional para la configuración en computadoras de escritorio
Bibliotecas de Windows
En Windows, las versiones de las bibliotecas se proporcionan en función de los siguientes aspectos:
- Plataforma de compilación: modo de 32 bits (x86) frente a 64 bits (x64)
- Entorno de ejecución de Windows: multiproceso/MT frente a multiproceso DLL/MD
- Destino: lanzamiento frente a depuración
Ten en cuenta que las bibliotecas que se indican a continuación se probaron con Visual Studio 2015 y 2017.
Cuando compiles apps para computadoras de escritorio de C++ en Windows, vincula las siguientes bibliotecas de los SDK de Windows con tu proyecto. Consulta la documentación del compilador para obtener más información.
Biblioteca de Firebase C++ | Dependencias de la biblioteca de SDK de Windows |
---|---|
Verificación de aplicaciones | advapi32, ws2_32, crypt32 |
Authentication | advapi32, ws2_32, crypt32 |
Cloud Firestore | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
Cloud Functions | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Cloud Storage | advapi32, ws2_32, crypt32 |
Realtime Database | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
Remote Config | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Bibliotecas de macOS
En macOS (Darwin), se proporcionan las versiones de biblioteca para la plataforma de 64 bits (x86_64). También se proporcionan los frameworks para facilitar tu trabajo.
Ten en cuenta que las bibliotecas de macOS se probaron con Xcode 13.3.1.
Cuando compiles apps de escritorio de C++ en macOS, vincula los siguientes elementos a tu proyecto:
- Biblioteca del sistema
pthread
- Framework del sistema de macOS de
CoreFoundation
- Framework del sistema de macOS de
Foundation
- Framework del sistema de macOS de
Security
- Framework del sistema de macOS de
GSS
- Framework del sistema de macOS de
Kerberos
- Framework del sistema de macOS de
SystemConfiguration
Consulta la documentación del compilador para obtener más información.
Bibliotecas de Linux
En el caso de Linux, se proporcionan las versiones de biblioteca para las plataformas de 32 bits (i386) y 64 bits (x86_64).
Recuerda que las bibliotecas de Linux se probaron con GCC 4.8.0, GCC 7.2.0 y Clang 5.0 en Ubuntu.
Cuando compiles apps de escritorio de C++ en Linux, vincula la biblioteca del sistema pthread
con tu proyecto. Consulta la documentación del compilador para obtener más información. Define -D_GLIBCXX_USE_CXX11_ABI=0
para compilar con GCC 5 o una versión más reciente.
Próximos pasos
Explora las apps de muestra de Firebase.
Explora el SDK de código abierto en GitHub.
Prepárate para iniciar tu app:
- Configura alertas de presupuesto para tu proyecto en Google Cloud Console.
- Supervisa el panel Uso y facturación en Firebase console para obtener un panorama general del uso de tu proyecto en varios servicios de Firebase.
- Revisa la Lista de tareas para el lanzamiento de Firebase.