Potencia tus juegos de C++ con nuestros SDK de Firebase C++ que proporcionan una interfaz de C++ además de Firebase para iOS y Android.
Acceda a Firebase completamente desde su código C++, sin tener que escribir ningún código nativo de la plataforma. El SDK de Firebase también traduce muchas expresiones idiomáticas específicas que utiliza Firebase en 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 agregó Firebase a su proyecto de C++? Asegúrate de estar usando la versión más reciente del SDK de Firebase C++ .
requisitos previos
Instale lo siguiente:
- Xcode 13.3.1 o posterior
- CocoaPods 1.10.0 o posterior
Asegúrese de que su proyecto se dirija a las siguientes versiones de plataforma o posteriores:
- iOS 11
Configure un dispositivo iOS físico o use el simulador de iOS para ejecutar su aplicación.
Para Cloud Messaging en plataformas Apple, estos son los requisitos previos:
- Configura un dispositivo Apple físico .
- Obtenga una clave de autenticación de notificación push de Apple para su cuenta de desarrollador de Apple .
- Habilite las notificaciones automáticas en Xcode en Aplicación > Capacidades .
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++. Visite Comprender los proyectos de Firebase para obtener más información sobre los proyectos de Firebase.
Paso 3 : Registre su aplicación con 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.
Ve a la consola de Firebase .
En el centro de la página de descripción general del proyecto, haga clic en el icono 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.
Ingrese el ID del paquete de su aplicación en el campo ID del paquete .
Un ID de paquete identifica de forma única una aplicación en el ecosistema de Apple.
Encuentre su ID de paquete: abra su proyecto en Xcode, seleccione la aplicación de nivel superior en el navegador de proyectos, luego seleccione la pestaña General .
El valor del campo Identificador de paquete es el ID del paquete (por ejemplo,
com.yourcompany.yourproject
).Tenga en cuenta que el valor del ID del paquete distingue entre mayúsculas y minúsculas y no se puede cambiar para esta aplicación de Firebase después de que se haya registrado con su proyecto de Firebase.
(Opcional) Ingrese otra información de la aplicación: apodo de la aplicación e ID de la tienda de aplicaciones.
Apodo de la aplicación : un identificador de conveniencia interno que solo es visible para usted en la consola de Firebase
Id. de App Store : Utilizado por Firebase Dynamic Links para redirigir a los usuarios a su página de App Store y por Google Analytics para importar eventos de conversión a Google Ads . Si su aplicación aún no tiene una ID de App Store, puede agregar la ID más adelante en la configuración de su proyecto .
Haga clic en Registrar aplicación .
Paso 4 : agregue el archivo de configuración de Firebase
Haga clic en Descargar GoogleService-Info.plist para obtener el archivo de configuración de su plataforma Firebase Apple.
El archivo de configuración de Firebase contiene identificadores únicos, pero no secretos, para su proyecto. Para obtener más información sobre este archivo de configuración, visite Comprender los proyectos de Firebase .
Puede volver a descargar su archivo de configuración de Firebase en cualquier momento.
Asegúrese de que el nombre del archivo de configuración no tenga caracteres adicionales, como
(2)
.
Abra su proyecto C++ en un IDE, luego arrastre su archivo de configuración a la raíz de su proyecto C++.
Si se le solicita, seleccione agregar el archivo de configuración a todos los destinos.
Ha terminado con las tareas de configuración en la consola de Firebase. Continúe con Agregar SDK de Firebase C++ a continuación.
Paso 5 : Agregar SDK de Firebase C++
Los pasos de esta sección son un ejemplo de cómo agregar productos compatibles de Firebase a su proyecto de Firebase C++.
Descarga el SDK de Firebase C++ y luego descomprímelo 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.
Agregue pods de Firebase desde el SDK descomprimido.
Cree un Podfile si aún no tiene uno:
cd your-app-directory
pod init
A su Podfile, agregue los pods de Firebase que desea usar en su 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'
Instale los pods, luego abra el archivo
.xcworkspace
en Xcode.pod install
open your-app.xcworkspace
Agregue marcos de trabajo de Firebase desde el SDK descomprimido.
La forma más sencilla de agregar estos marcos suele ser arrastrarlos desde una ventana del
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).Agregue el marco de trabajo de Firebase C++
firebase.framework
, que es necesario para usar cualquier producto de Firebase.Agrega el marco para cada producto de Firebase que quieras usar. Por ejemplo, para usar Firebase Authentication, agrega
firebase_auth.framework
.
De vuelta en Firebase console, en el flujo de trabajo de configuración, haga clic en Siguiente .
Si agregó Analytics, ejecute su aplicación para enviar una verificación a Firebase de que integró 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 se completó la inicialización. Si ejecutó su aplicación en un emulador que tiene acceso a la red, la consola Firebase le notifica que la conexión de su aplicación está completa.
¡Estás listo! Su aplicación de 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 SDK de código abierto en GitHub .
Bibliotecas disponibles para iOS
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++.
producto base de fuego | Marcos y vainas |
---|---|
AdMob | (obligatorio) firebase.framework firebase_admob.framework (obligatorio) firebase_analytics.framework pod 'FirebaseAdMob', '10.4.0' (requerido) pod 'FirebaseAnalytics', '10.4.0' |
Analítica | (obligatorio) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '10.4.0' |
Autenticación | (obligatorio) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '10.4.0' |
Tienda de fuego en la nube | (obligatorio) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '10.4.0' pod 'FirebaseAuth', '10.4.0' |
Funciones en la nube | (obligatorio) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '10.4.0' |
Mensajería en la nube | (obligatorio) firebase.framework firebase_messaging.framework (recomendado) firebase_analytics.framework pod 'FirebaseMessaging', '10.4.0' (recomendado) pod 'FirebaseAnalytics', '10.4.0' |
Almacenamiento en la nube | (obligatorio) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '10.4.0' |
Enlaces dinámicos | (obligatorio) firebase.framework firebase_dynamic_links.framework (recomendado) firebase_analytics.framework pod 'FirebaseDynamicLinks', '10.4.0' (recomendado) pod 'FirebaseAnalytics', '10.4.0' |
Base de datos en tiempo real | (obligatorio) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '10.4.0' |
Configuración remota | (obligatorio) firebase.framework firebase_remote_config.framework (recomendado) firebase_analytics.framework pod 'FirebaseRemoteConfig', '10.4.0' (recomendado) pod 'FirebaseAnalytics', '10.4.0' |
Información adicional para la configuración móvil
metodo swizzling
En iOS, algunos eventos de aplicaciones (como abrir direcciones URL 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 su delegado de aplicación implemente application:didReceiveRemoteNotification:
. Debido a que cada aplicación de iOS tiene su propio delegado de aplicación, Firebase usa 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 de Dynamic Links y Cloud Messaging deben adjuntar controladores al delegado de la aplicación mediante el método swizzling. Si usa alguno de estos productos de Firebase, en el momento de la carga, Firebase identificará su clase AppDelegate
y le agregará los métodos requeridos, encadenando una llamada a la implementación de su método existente.
Configurar un flujo de trabajo de escritorio ( beta )
Cuando está creando un juego, a menudo es mucho más fácil probar su juego primero en plataformas de escritorio, luego implementarlo y probarlo en dispositivos móviles más adelante en el desarrollo. Para respaldar este flujo de trabajo, proporcionamos un subconjunto de los SDK de Firebase C++ que se pueden ejecutar en Windows, macOS, Linux y desde el editor de C++.
Para los flujos de trabajo de escritorio, debe completar lo siguiente:
- Configure su proyecto de C++ para CMake.
- Crear un proyecto de Firebase
- Registre su aplicación (iOS o Android) con Firebase
- Agregar un archivo de configuración de Firebase para plataformas móviles
Cree una versión de escritorio del archivo de configuración de Firebase:
Si agregó el archivo
google-services.json
Android : cuando ejecuta su aplicación, Firebase ubica este archivo móvil y luego genera automáticamente un archivo de configuración de Firebase para 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 para escritorio . Para convertir el archivo, ejecute el siguiente comando desde el mismo directorio que su archivoGoogleService-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 de C++ que ingresaste en el flujo de trabajo de configuración de la consola de Firebase. Visite Comprender los proyectos de Firebase para obtener más información sobre los archivos de configuración.
Agrega los SDK de Firebase a tu proyecto de C++.
Los pasos a continuación sirven como ejemplo de cómo agregar cualquier producto de Firebase compatible a su proyecto de C++. En este ejemplo, explicamos cómo agregar Firebase Authentication y Firebase Realtime Database.
Establezca su variable de entorno
FIREBASE_CPP_SDK_DIR
en la ubicación del SDK de Firebase C++ descomprimido.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}")
Ejecute su aplicación C++.
Bibliotecas disponibles (escritorio)
El SDK de Firebase C++ incluye soporte de flujo de trabajo de escritorio para un subconjunto de características, lo que permite que ciertas partes de Firebase se usen en compilaciones de escritorio independientes en Windows, macOS y Linux.
producto base de fuego | Referencias de biblioteca (usando CMake) |
---|---|
Autenticación | firebase_auth (obligatorio) firebase_app |
Tienda de fuego en la nube | firebase_firestore firebase_auth firebase_app |
Funciones en 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 necesita compilar código de forma condicional 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 de escritorio
Bibliotecas de Windows
Para Windows, las versiones de la biblioteca se proporcionan en función de lo siguiente:
- Plataforma de compilación: modo de 32 bits (x86) frente a 64 bits (x64)
- Entorno de tiempo de ejecución de Windows: multiproceso/MT frente a multiproceso DLL/MD
- Objetivo: lanzamiento frente a depuración
Tenga en cuenta que las siguientes bibliotecas se probaron con Visual Studio 2015 y 2017.
Al crear aplicaciones de escritorio de C++ en Windows, vincule las siguientes bibliotecas SDK de Windows a su proyecto. Consulte la documentación de su compilador para obtener más información.
Biblioteca Firebase C++ | Dependencias de la biblioteca SDK de Windows |
---|---|
Autenticación | advapi32, ws2_32, crypt32 |
Tienda de fuego en la nube | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
Funciones en 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 comodidad.
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 del sistema macOS de
Foundation
- Marco del sistema macOS
Security
- Marco del sistema
GSS
macOS - Marco del sistema
Kerberos
macOS -
SystemConfiguration
del sistema marco 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 biblioteca para plataformas de 32 bits (i386) y 64 bits (x86_64).
Tenga en cuenta que las bibliotecas de Linux se probaron con 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
Explora las aplicaciones de muestra de Firebase .
Explore el SDK de código abierto en GitHub .
Prepárese para lanzar su aplicación:
- Configura alertas de presupuesto para tu proyecto en Google Cloud Console.
- Supervise el panel de uso y facturación en la consola de Firebase para obtener una imagen general del uso de su proyecto en varios servicios de Firebase.
- Revise la lista de verificación de lanzamiento de Firebase .