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 su editor o IDE preferido, como Android Studio, IntelliJ o VS Code.
Obtenga el SDK de Android .
Asegúrese de que su proyecto cumpla con estos requisitos:
Se dirige al nivel API 19 (KitKat) o superior
Utiliza Gradle y está configurado con CMake
Configure un dispositivo físico o use un emulador para ejecutar su aplicación.
Los emuladores deben utilizar una imagen de emulador con Google Play.
Para algunas bibliotecas de C++, se requieren los servicios de Google Play en el dispositivo cliente; revise la lista en esta página.
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 Android, 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.
Vaya a la consola de Firebase .
En el centro de la página de descripción general del proyecto, haga clic en el ícono de Android (
) o Agregar aplicación para iniciar el flujo de trabajo de configuración.Ingrese el nombre del paquete de su aplicación en el campo de nombre del paquete de Android .
Un nombre de paquete identifica de forma única su aplicación en el dispositivo y en Google Play Store.
El nombre de un paquete suele denominarse ID de aplicación .
Busque el nombre del paquete de su aplicación en el archivo Gradle de su módulo (nivel de aplicación), generalmente
app/build.gradle
(nombre de paquete de ejemplo:com.yourcompany.yourproject
).Tenga en cuenta que el valor del nombre del paquete distingue entre mayúsculas y minúsculas y no se puede cambiar para esta aplicación de Firebase para Android después de registrarla en su proyecto de Firebase.
(Opcional) Ingrese otra información de la aplicación: apodo de la aplicación y certificado de firma de depuración SHA-1 .
Apodo de la aplicación : un identificador interno y conveniente que solo usted puede ver en Firebase console.
Certificado de firma de depuración SHA-1 : la autenticación de Firebase (cuando se utiliza el inicio de sesión de Google o el inicio de sesión con número de teléfono ) y los enlaces dinámicos de Firebase requieren un hash SHA-1 .
Haga clic en Registrar aplicación .
Paso 4 : agregue el archivo de configuración de Firebase
Haga clic en Descargar google-services.json para obtener su archivo de configuración de Firebase Android.
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 descargar su archivo de configuración de Firebase nuevamente 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 agregue su archivo de configuración a su proyecto:
Compilaciones de Gradle: agregue su archivo de configuración al mismo directorio que su archivo
build.gradle
de nivel superior.Otros sistemas de compilación: consulte Sistemas de compilación personalizados a continuación para generar recursos de cadenas de Android .
(Solo compilaciones de Gradle) Para habilitar los servicios de Firebase en su proyecto de C++, agregue el complemento de servicios de Google a su archivo
build.gradle
de nivel superior.Agregue reglas para incluir el complemento Gradle de servicios de Google. Comprueba que también tienes el repositorio Maven de Google.
buildscript { repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository } dependencies { // ... // Add the following lines: classpath 'com.google.gms:google-services:4.4.1' // Google Services plugin implementation 'com.google.android.gms:18.3.0' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
Aplique el complemento Gradle de servicios de Google:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
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++.
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.
En el archivo
gradle.properties
de su proyecto, especifique la ubicación del SDK descomprimido:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Al archivo
settings.gradle
de su proyecto, agregue el siguiente contenido:def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir') gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir" includeBuild "$firebase_cpp_sdk_dir"
Al archivo Gradle de su módulo (nivel de aplicación) (generalmente
app/build.gradle
), agregue el siguiente contenido.
Incluye las dependencias de la biblioteca para los productos de Firebase que deseas usar en tu aplicación.Análisis habilitado
android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependencies for the Firebase products you want to use in your app # For example, to use Analytics, Firebase Authentication, and Firebase Realtime Database apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { analytics auth database }
Análisis no habilitado
android.defaultConfig.externalNativeBuild.cmake { arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir" } # Add the dependencies for the Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { auth database }
Al archivo
CMakeLists.txt
de su proyecto, agregue el siguiente contenido.
Incluye las bibliotecas de los productos de Firebase que quieras usar en tu aplicación.Análisis habilitado
# 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 Analytics, Firebase Authentication, and Firebase Realtime Database set(firebase_libs firebase_analytics firebase_auth firebase_database firebase_app ) target_link_libraries(${target_name} "${firebase_libs}")
Análisis no habilitado
# 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}")
Sincronice su aplicación para asegurarse de que todas las dependencias tengan las versiones necesarias.
Si agregaste Analytics, ejecuta tu aplicación para enviar una verificación a Firebase de que has integrado Firebase correctamente. De lo contrario, puedes omitir el 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 los servicios 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 Android (usando CMake)
Tenga en cuenta que las bibliotecas de C++ para plataformas Apple se enumeran en la versión de plataformas Apple (iOS+) de esta página de configuración .
Producto base de fuego | Referencias de la biblioteca ( firebaseCpp.dependencies para el archivo build.gradle ) | Referencias de la biblioteca ( firebase_libs para el archivo CMakeLists.txt ) |
---|---|---|
AdMob | admob | firebase_admob (obligatorio) firebase_analytics (obligatorio) firebase_app |
Analítica | analytics | firebase_analytics (obligatorio) firebase_app |
Verificación de aplicaciones | appCheck | firebase_app_check (obligatorio) firebase_app |
Autenticación | auth | firebase_auth (obligatorio) firebase_app |
Tienda de fuego en la nube | firestore | firebase_firestore (obligatorio) firebase_auth (obligatorio) firebase_app |
Funciones de la nube | functions | firebase_functions (obligatorio) firebase_app |
Mensajería en la nube | messaging | firebase_messaging (recomendado) firebase_analytics (obligatorio) firebase_app |
Almacenamiento en la nube | storage | firebase_storage (obligatorio) firebase_app |
Enlaces dinámicos | dynamicLinks | firebase_dynamic_links (recomendado) firebase_analytics (obligatorio) firebase_app |
Base de datos en tiempo real | database | firebase_database (obligatorio) firebase_app |
Configuración remota | remoteConfig | firebase_remote_config (recomendado) firebase_analytics (obligatorio) firebase_app |
Información adicional para la configuración móvil
Obtenga informes de fallos del NDK
Firebase Crashlytics admite informes de fallos para aplicaciones que utilizan bibliotecas nativas de Android. Para obtener más información, consulte Obtener informes de fallos del NDK de Android .
Sistemas de construcción personalizados
Firebase proporciona el script generate_xml_from_google_services_json.py
para convertir google-services.json
en recursos .xml
que puedes incluir en tu proyecto. Este script aplica la misma transformación que realiza el complemento Gradle de los servicios de Google Play al crear aplicaciones de Android.
Si no compila con Gradle (por ejemplo, usa ndk-build, makefiles, Visual Studio, etc.), puede usar este script para automatizar la generación de recursos de cadenas de Android .
ProGuard
Muchos sistemas de compilación de Android utilizan ProGuard para compilaciones en modo de lanzamiento para reducir el tamaño de las aplicaciones y proteger el código fuente de Java.
Si usa ProGuard, deberá agregar los archivos en libs/android/*.pro
correspondientes a las bibliotecas de Firebase C++ que está usando en su configuración de ProGuard.
Por ejemplo, con Gradle, si usas Google Analytics, tu archivo build.gradle
se vería así:
android { // ... buildTypes { release { minifyEnabled true proguardFile getDefaultProguardFile('your-project-proguard-config.txt') proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/app.pro") proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/analytics.pro") // ... and so on, for each Firebase C++ library that you're using } } }
Requisito de servicios de Google Play
La mayoría de las bibliotecas de Firebase C++ requieren que los servicios de Google Play estén en el dispositivo Android del cliente. Si una biblioteca de Firebase C++ devuelve kInitResultFailedMissingDependency
en la inicialización, significa que los servicios de Google Play no están disponibles en el dispositivo cliente (lo que significa que es necesario actualizarlos, reactivarlos, arreglar los permisos, etc.). La biblioteca de Firebase no se puede utilizar hasta que se corrija la situación en el dispositivo cliente.
Puede descubrir por qué los servicios de Google Play no están disponibles en el dispositivo cliente (e intentar solucionarlo) utilizando las funciones en google_play_services/availability.h
.
La siguiente tabla indica si se requieren los servicios de Google Play en un dispositivo cliente para cada producto de Firebase compatible.
Biblioteca de Firebase C++ | ¿Se requieren servicios de Google Play en el dispositivo cliente? |
---|---|
AdMob | No requerido (generalmente) |
Analítica | No requerido |
Autenticación | Requerido |
Tienda de fuego en la nube | Requerido |
Funciones de la nube | Requerido |
Mensajería en la nube | Requerido |
Almacenamiento en la nube | Requerido |
Enlaces dinámicos | Requerido |
Base de datos en tiempo real | Requerido |
Configuración remota | Requerido |
Servicios de AdMob y Google Play
La mayoría de las versiones del SDK de anuncios de Google para móviles para Android pueden funcionar correctamente sin los servicios de Google Play en el dispositivo cliente. Sin embargo, si usas la dependencia com.google.android.gms:play-services-ads-lite
, en lugar de la dependencia estándar com.google.firebase:firebase-ads
mencionada anteriormente, se requieren los servicios de Google Play .
La inicialización de AdMob solo devolverá kInitResultFailedMissingDependency
cuando se cumplan las dos condiciones siguientes:
- Los servicios de Google Play no están disponibles en el dispositivo cliente.
- Estás utilizando
com.google.android.gms:play-services-ads-lite
.
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++.
Para flujos de trabajo de escritorio, debe completar lo siguiente:
- Configure su proyecto 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 plataforma móvil
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 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 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.
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.
Configure 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 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
Explora aplicaciones de Firebase de muestra .
Explore el SDK de código abierto en GitHub .
Prepárese para iniciar su aplicación:
- Configure alertas de presupuesto para su proyecto en la consola de Google Cloud.
- Supervise el panel de Uso y facturación en Firebase console para obtener una imagen general del uso de su proyecto en múltiples servicios de Firebase.
- Revisa la lista de verificación de lanzamiento de Firebase .