Melhore seus jogos com os SDKs do Firebase para C++, que, além dos SDKs, oferecem uma interface em C++.
Acesse o Firebase com seu código C++, sem ter que escrever códigos nativos de plataformas. O SDK do Firebase também converte muitos idiomas específicos da linguagem usados pelo Firebase em uma interface mais familiar para os desenvolvedores de C++.
Veja mais informações sobre como turbinar seus jogos com o Firebase na nossa página do Firebase para jogos.
Já adicionou o Firebase ao seu projeto em C++? Verifique se você está usando a versão mais recente do SDK C++ do Firebase.
Pré-requisitos
- Instale o editor ou o ambiente de desenvolvimento integrado de sua preferência, como o Android Studio, IntelliJ ou VS Code. 
- Consiga o SDK do Android. 
- Verifique se o projeto atende a estes requisitos: - Visa o nível 21 da API (Lollipop) ou mais recente. 
- Usa o Gradle e está configurado com o CMake. 
 
- Configure um dispositivo físico ou use um emulador para executar seu aplicativo. - Emuladores precisam usar uma imagem com o Google Play. 
- Para algumas bibliotecas em C++, o Google Play Services é necessário no dispositivo do cliente. Consulte a lista nesta página. 
 
- Faça login no Firebase usando sua Conta do Google. 
Etapa 2: criar um projeto do Firebase
Antes de adicionar o Firebase ao seu projeto em C++, é preciso criar um projeto do Firebase para ser conectado ao seu projeto em C++. Para mais informações, consulte Noções básicas sobre projetos do Firebase.
Etapa 3: registrar seu app com o Firebase
Para usar o Firebase no seu app Android, é necessário registrá-lo no projeto do Firebase. Registrar o app também quer dizer "adicionar" o app ao projeto.
- Acesse o console do Firebase, 
- No centro da página de visão geral do projeto, clique no ícone do Android () ou em Adicionar app para iniciar o fluxo de trabalho de configuração. 
- Digite o nome do pacote do app no campo Nome do pacote Android. 
- (Opcional) Digite um Apelido do app, que é um identificador interno de conveniência visível apenas para você no console do Firebase. 
- Clique em Registrar app. 
Etapa 4: adicionar o arquivo de configuração do Firebase
- Clique em Fazer o download do google-services.json para receber o arquivo de configuração do Firebase para Android. 
- Abra seu projeto em C++ em um ambiente de desenvolvimento integrado e adicione seu arquivo de configuração ao seu projeto: - Builds do Gradle: adicione seu arquivo de configuração ao mesmo diretório onde está seu arquivo - build.gradlede nível superior.
- Outros sistemas de build: consulte Sistemas de build personalizados abaixo para gerar recursos de string do Android. 
 
- (Apenas para builds do Gradle) Para ativar os serviços do Firebase no seu projeto em C++, adicione o plug-in google-services ao seu arquivo - build.gradlede nível superior.- Adicione regras para incluir o plug-in do Serviços do Google para Gradle. Verifique se você tem o repositório Maven do Google também. - 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.4' // Google Services plugin implementation 'com.google.android.gms:18.9.0' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
- Aplique o plug-in do Serviços do Google para Gradle: - apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
 
- Você concluiu as tarefas de configuração no Console do Firebase. Continue para Adicionar SDKs do Firebase para C++. 
Etapa 5: adicionar SDKs do Firebase para C++
As etapas nesta seção são um exemplo de como adicionar produtos do Firebase com suporte ao seu projeto em C++ do Firebase.
- Faça o download do SDK do Firebase C++ e descompacte o SDK em um local prático. - O SDK C++ do Firebase não é específico da plataforma, mas contém bibliotecas específicas. 
- No arquivo - gradle.propertiesdo projeto, especifique o local do SDK descompactado:- systemProp.firebase_cpp_sdk.dir=full-path-to-SDK 
- Adicione o seguinte conteúdo ao arquivo - settings.gradledo seu projeto:- 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" 
- No arquivo do Gradle, que geralmente é - app/build.gradle, do seu módulo no nível do aplicativo, adicione o seguinte conteúdo.
 Inclua as dependências da biblioteca dos produtos do Firebase que você quer usar no seu app.- Analytics ativado- 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 } - Analytics não ativado- 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 } 
- Para o arquivo - CMakeLists.txtdo seu projeto, adicione o seguinte conteúdo.
 incluindo as bibliotecas dos produtos do Firebase que você quer usar no seu app.- Analytics ativado- # 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}") - Analytics não ativado- # 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}") 
- Sincronize seu app para garantir que todas as dependências tenham as versões necessárias. 
- Se você adicionou o Analytics, execute seu app para enviar ao Firebase a confirmação de que você integrou o Firebase com sucesso. Caso contrário, é possível pular a etapa de confirmação. - Os registros do dispositivo exibirão a verificação do Firebase de que a inicialização foi concluída. Se você executou seu app em um emulador com acesso à rede, o Console do Firebase notifica que a conexão do seu aplicativo está completa. 
Tudo pronto! Seu app em C++ está registrado e configurado para usar os serviços do Firebase.
Bibliotecas disponíveis
Saiba mais sobre as bibliotecas do Firebase para C++ na documentação de referência e na nossa versão do SDK de código aberto no GitHub (em inglês).
Bibliotecas disponíveis para Android (usando o CMake)
Observe que as bibliotecas C++ para plataformas da Apple estão listadas na versão para iOS+ da página de configurações.
| Produto do Firebase | Referências da biblioteca ( firebaseCpp.dependenciespara o arquivo build.gradle) | Referências da biblioteca ( firebase_libspara o arquivo CMakeLists.txt) | 
|---|---|---|
| AdMob | admob | firebase_admob(obrigatório) firebase_analytics(obrigatório) firebase_app | 
| Analytics | analytics | firebase_analytics(obrigatório) firebase_app | 
| App Check | appCheck | firebase_app_check(obrigatório) firebase_app | 
| Authentication | auth | firebase_auth(obrigatório) firebase_app | 
| Cloud Firestore | firestore | firebase_firestore(obrigatório) firebase_auth(obrigatório) firebase_app | 
| Cloud Functions | functions | firebase_functions(obrigatório) firebase_app | 
| Cloud Messaging | messaging | firebase_messaging(recomendado) firebase_analytics(obrigatório) firebase_app | 
| Cloud Storage | storage | firebase_storage(obrigatório) firebase_app | 
| Dynamic Links | dynamicLinks | firebase_dynamic_links(recomendado) firebase_analytics(obrigatório) firebase_app | 
| Realtime Database | database | firebase_database(obrigatório) firebase_app | 
| Remote Config | remoteConfig | firebase_remote_config(recomendado) firebase_analytics(obrigatório) firebase_app | 
Informações adicionais para configuração em dispositivos móveis
Receber relatórios de erros do NDK
O Firebase Crashlytics aceita a criação de relatórios de erros para apps que usam bibliotecas nativas do Android. Para saber mais, consulte Receber relatórios de erros do Android NDK.
Sistemas de build personalizados
O Firebase fornece o script generate_xml_from_google_services_json.py para
converter google-services.json em recursos .xml que você pode incluir
no projeto. Esse script aplica a mesma transformação que o plug-in Gradle do Google Play Services realiza quando criamos aplicativos para Android.
Se você não criar usando o Gradle, mas sim o ndk-build, makefiles, Visual Studio etc., poderá usar esse script para automatizar a geração de recursos de string do Android.
ProGuard
Muitos sistemas de build do Android usam o ProGuard nos builds em modo de lançamento para reduzir o tamanho dos aplicativos e proteger o código-fonte em Java.
Se você usa o ProGuard, adicione os arquivos no libs/android/*.pro
correspondente às bibliotecas do Firebase para C++ que são usadas na configuração do
ProGuard.
Por exemplo, com o Gradle, se você estiver usando Google Analytics,
seu arquivo build.gradle será semelhante a:
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 do Google Play Services
A maioria das bibliotecas do Firebase para C++ exige o Google Play Services no dispositivo Android do cliente. Quando uma biblioteca do Firebase para C++ retorna
kInitResultFailedMissingDependency
na inicialização, isso significa que o Google Play Services não está disponível no
dispositivo cliente, ou seja, ele precisa ser atualizado. reativadas, permissões
fixas etc. Essa biblioteca não poderá ser usada até que a situação seja corrigida.
Use as funções em
google_play_services/availability.h para descobrir por que o Google Play Services está indisponível
e solucionar o problema.
A tabela a seguir lista se o Google Play Services é necessário em um dispositivo cliente para cada produto do Firebase compatível.
| Biblioteca do Firebase para C++ | Google Play Services obrigatório no dispositivo cliente? | 
|---|---|
| AdMob | Não é obrigatório (geralmente) | 
| Analytics | Não obrigatório | 
| Authentication | Obrigatório | 
| Cloud Firestore | Obrigatório | 
| Cloud Functions | Obrigatório | 
| Cloud Messaging | Obrigatório | 
| Cloud Storage | Obrigatório | 
| Dynamic Links | Obrigatório | 
| Realtime Database | Obrigatório | 
| Remote Config | Obrigatório | 
AdMob e Google Play Services
A maioria das versões do SDK do Google Mobile Ads para Android pode funcionar corretamente
sem o Google Play Services no dispositivo cliente. No entanto, se você estiver usando
a dependência com.google.android.gms:play-services-ads-lite, em vez da dependência
com.google.firebase:firebase-ads padrão listada acima, o Google Play Services será
necessário
A inicialização AdMob só retornará kInitResultFailedMissingDependency
quando os dois itens a seguir forem verdadeiros:
- O Google Play Services não está disponível no dispositivo cliente.
- Você está usando com.google.android.gms:play-services-ads-lite.
Configurar um fluxo de trabalho para computadores (Beta)
Ao criar um jogo, geralmente é mais fácil fazer os testes nas plataformas para computadores primeiro e implantar e testar em dispositivos móveis em uma etapa posterior do desenvolvimento. Para oferecer suporte a esse fluxo de trabalho, fornecemos um subconjunto de SDKs do Firebase C++ que pode ser executado no Windows, macOS, Linux e no editor do C++:
- Para fluxos de trabalho em computadores, faça o seguinte: - Configure seu projeto em C++ para CMake.
- Criar um projeto do Firebase
- Registre seu app (iOS ou Android) com o Firebase.
- Adicione um arquivo de configuração do Firebase para plataformas de dispositivos móveis.
 
- Crie uma versão para computador do arquivo de configuração do Firebase: - Se você adicionou o arquivo - google-services.jsondo Android: ao executar o app, o Firebase localiza esse arquivo de dispositivo móvel e gera automaticamente um arquivo de configuração do Firebase para computador (- google-services-desktop.json)
- Se você adicionou o arquivo - GoogleService-Info.plist: Antes de executar o app, você precisa converter esse arquivo de configuração do Firebase de dispositivo móvel para um de computador. Para converter o arquivo, execute o seguinte comando no mesmo diretório que seu arquivo- GoogleService-Info.plist:- generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist 
 - Esse arquivo de configuração para computadores contém o ID do projeto em C++ que você inseriu no fluxo de trabalho de configuração do Console do Firebase. Para mais informações, consulte Noções básicas sobre projetos do Firebase. 
- Adicione os SDKs do Firebase ao seu projeto em C++. - As etapas abaixo servem como exemplo de como adicionar qualquer produto do Firebase compatível ao seu projeto em C++. Neste exemplo, mostraremos como adicionar Firebase Authentication e Firebase Realtime Database. - Defina a variável de ambiente - FIREBASE_CPP_SDK_DIRcomo o local do SDK Firebase C++ descompactado.
- Adicione o seguinte conteúdo ao arquivo - CMakeLists.txtdo seu projeto, incluindo as bibliotecas dos produtos do Firebase que você quer usar. Por exemplo, para usar Firebase Authentication, Firebase Realtime Database e:- # 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}") 
 
- Execute seu app em C++. 
Bibliotecas disponíveis (computador)
O SDK do Firebase C++ inclui suporte a fluxo de trabalho em computadores para um subconjunto de recursos. Isso permite que determinadas partes do Firebase sejam usadas em versões independentes para computadores no Windows, macOS e Linux.
| Produto do Firebase | Referências da biblioteca (usando o CMake) | 
|---|---|
| App Check | firebase_app_check(obrigatório) firebase_app | 
| Authentication | firebase_auth(obrigatório) firebase_app | 
| Cloud Firestore | firebase_firestorefirebase_authfirebase_app | 
| Cloud Functions | firebase_functions(obrigatório) firebase_app | 
| Cloud Storage | firebase_storage(obrigatório) firebase_app | 
| Realtime Database | firebase_database(obrigatório) firebase_app | 
| Remote Config | firebase_remote_config(obrigatório) firebase_app | 
O Firebase fornece as bibliotecas para computador restantes como implementações stub (não funcionais) para sua comodidade durante a criação de projetos para Windows, macOS e Linux. Elas eliminam a necessidade de compilar códigos de modo condicional na segmentação para computadores.
Desktop Realtime Database
O SDK do Realtime Database para computadores usa REST para acessar seu banco de dados. Portanto, você precisa
declarar os índices que
usa com Query::OrderByChild() no computador para evitar falha nos listeners.
Informações adicionais para a configuração em computadores
Bibliotecas do Windows
Para o Windows, as versões da biblioteca são fornecidas com base no seguinte:
- Plataforma da versão: modo de 32 bits (x86) x modo de 64 bits (x64)
- Ambiente de execução do Windows: Multithreaded/MT x Multithreaded DLL/MD
- Destino: lançamento x depuração
Observe que as seguintes bibliotecas foram testadas usando o Visual Studio 2015 e 2017.
Ao criar aplicativos de computador em C++ no Windows, vincule as seguintes bibliotecas do SDK do Windows ao seu projeto. Consulte a documentação do seu compilador para mais informações.
| Biblioteca do Firebase para C++ | Dependências da biblioteca do SDK do Windows | 
|---|---|
| App Check | 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 do macOS
No macOS (Darwin), as versões da biblioteca são fornecidas para a plataforma de 64 bits (x86_64). Frameworks também são fornecidos para sua conveniência.
Observe que as bibliotecas do macOS foram testadas usando o Xcode 16.2.
Ao criar apps para computador em C++ no macOS, vincule o seguinte ao seu projeto:
- Biblioteca do sistema pthread
- Framework CoreFoundationdo sistema macOS
- Framework Foundationdo sistema macOS
- Framework Securitydo sistema macOS
- Framework GSSdo sistema macOS
- Framework Kerberosdo sistema macOS
- Framework SystemConfigurationdo sistema macOS
Consulte a documentação do seu compilador para mais informações.
Bibliotecas do Linux
No Linux, as versões da biblioteca são fornecidas para plataformas de 32 bits (i386) e 64 bits (x86_64).
Observe que as bibliotecas do Linux foram testadas usando o GCC 4.8.0, o GCC 7.2.0 e o Clang 5.0 no Ubuntu.
Ao criar aplicativos de computador em C++ no Linux, vincule a biblioteca de sistema pthread ao
seu projeto. Consulte a documentação do seu compilador para mais informações. Se
você estiver criando com o GCC 5 ou versões mais recentes, defina -D_GLIBCXX_USE_CXX11_ABI=0.
Próximas etapas
- Conheça os aplicativos de amostra do Firebase. 
- Conheça o SDK de código aberto no GitHub (em inglês). 
- Prepare-se para lançar seu aplicativo: - Configure os alertas de orçamento para seu projeto no console Google Cloud.
- Monitore o painel Uso e faturamento no console do Firebase para ter uma visão geral do uso do projeto em vários serviços do Firebase.
- Consulte a checklist de lançamento do Firebase.