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 aos requisitos a seguir:
O nível desejado da API é 19 (KitKat) ou superior.
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) Insira outras informações do aplicativo: apelido do app e certificado de assinatura SHA-1 de depuração.
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.gradle
de 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.gradle
de 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.2' // Google Services plugin implementation 'com.google.android.gms:18.5.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.properties
do projeto, especifique o local do SDK descompactado:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Adicione o seguinte conteúdo ao arquivo
settings.gradle
do 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.txt
do 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.dependencies para o arquivo build.gradle ) |
Referências da biblioteca ( firebase_libs para 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.json
do 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 arquivoGoogleService-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_DIR
como o local do SDK Firebase C++ descompactado.Adicione o seguinte conteúdo ao arquivo
CMakeLists.txt
do 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_firestore firebase_auth firebase_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 13.3.1.
Ao criar apps para computador em C++ no macOS, vincule o seguinte ao seu projeto:
- Biblioteca do sistema
pthread
- Framework
CoreFoundation
do sistema macOS - Framework
Foundation
do sistema macOS - Framework
Security
do sistema macOS - Framework
GSS
do sistema macOS - Framework
Kerberos
do sistema macOS - Framework
SystemConfiguration
do 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.