Aprimore seus jogos C++ com nossos SDKs C++ do Firebase, que fornecem uma interface C++ além dos SDKs do Firebase.
Acesse o Firebase inteiramente a partir do seu código C++, sem precisar escrever nenhum código nativo da plataforma. O SDK do Firebase também traduz muitos idiomas específicos da linguagem usados pelo Firebase em uma interface mais familiar para desenvolvedores C++.
Descubra mais informações sobre como potencializar seus jogos com o Firebase em nossa página de jogos do Firebase .
Já adicionou o Firebase ao seu projeto C++? Verifique se você está usando a versão mais recente do SDK C++ do Firebase .
Pré-requisitos
Instale o seguinte:
- Xcode 13.3.1 ou posterior
- CocoaPods 1.12.0 ou posterior
Certifique-se de que seu projeto seja direcionado às seguintes versões de plataforma ou posteriores:
- iOS 11
- tvOS 12
Configure um dispositivo físico ou use o simulador para executar seu aplicativo.
Para Cloud Messaging em plataformas Apple, aqui estão os pré-requisitos:
- Configure um dispositivo Apple físico .
- Obtenha uma chave de autenticação de notificação push da Apple para sua conta de desenvolvedor Apple .
- Habilite notificações push no Xcode em App > Capabilities .
Faça login no Firebase usando sua conta do Google.
Passo 2 : Crie um projeto Firebase
Antes de adicionar o Firebase ao seu projeto C++, você precisa criar um projeto do Firebase para se conectar ao seu projeto C++. Visite Entenda os projetos do Firebase para saber mais sobre os projetos do Firebase.
Etapa 3 : registre seu aplicativo no Firebase
Para usar o Firebase em seu aplicativo Apple, você precisa registrar seu aplicativo em seu projeto Firebase. Registrar seu aplicativo geralmente é chamado de "adicionar" seu aplicativo ao projeto.
Vá para o console do Firebase .
No centro da página de visão geral do projeto, clique no ícone iOS+ para iniciar o fluxo de trabalho de configuração.
Se você já adicionou um aplicativo ao seu projeto do Firebase, clique em Adicionar aplicativo para exibir as opções da plataforma.
Insira o ID do pacote do seu aplicativo no campo ID do pacote .
Um ID de pacote identifica exclusivamente um aplicativo no ecossistema da Apple.
Encontre o ID do seu pacote: abra seu projeto no Xcode, selecione o aplicativo de nível superior no navegador do projeto e selecione a guia Geral .
O valor do campo Identificador de Pacote é o ID do pacote (por exemplo,
com.yourcompany.yourproject
).Esteja ciente de que o valor do ID do pacote diferencia maiúsculas de minúsculas e não pode ser alterado para este aplicativo do Firebase depois de registrado no seu projeto do Firebase.
(Opcional) Insira outras informações do aplicativo: apelido do aplicativo e ID da App Store .
Apelido do aplicativo : um identificador interno e prático que só fica visível para você no Console do Firebase
ID da App Store : usado pelo Firebase Dynamic Links para redirecionar os usuários para sua página da App Store e pelo Google Analytics para importar eventos de conversão para o Google Ads . Se o seu aplicativo ainda não tiver um ID da App Store, você poderá adicionar o ID posteriormente nas configurações do projeto .
Clique em Registrar aplicativo .
Etapa 4 : adicione o arquivo de configuração do Firebase
Clique em Baixar GoogleService-Info.plist para obter o arquivo de configuração das plataformas Firebase Apple.
O arquivo de configuração do Firebase contém identificadores exclusivos, mas não secretos, para o seu projeto. Para saber mais sobre esse arquivo de configuração, visite Entenda os projetos do Firebase .
Você pode fazer download do arquivo de configuração do Firebase novamente a qualquer momento.
Certifique-se de que o nome do arquivo de configuração não contenha caracteres adicionais, como
(2)
.
Abra seu projeto C++ em um IDE e arraste seu arquivo de configuração para a raiz do seu projeto C++.
Se solicitado, selecione para adicionar o arquivo de configuração a todos os destinos.
Você concluiu as tarefas de configuração no console do Firebase. Continue para adicionar SDKs do Firebase C++ abaixo.
Etapa 5 : adicionar SDKs do Firebase C++
As etapas nesta seção são um exemplo de como adicionar produtos compatíveis do Firebase ao seu projeto Firebase C++.
Faça download do SDK do Firebase C++ e descompacte-o em um local conveniente.
O SDK do Firebase C++ não é específico da plataforma, mas contém bibliotecas específicas da plataforma.
Adicione pods do Firebase do SDK descompactado.
Crie um Podfile se ainda não tiver um:
cd your-app-directory
pod init
Ao seu Podfile, adicione os pods do Firebase que você deseja usar no seu aplicativo.
Análise ativada
# 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álise não ativada
# 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 os pods e abra o arquivo
.xcworkspace
no Xcode.pod install
open your-app.xcworkspace
Adicione estruturas do Firebase do SDK descompactado.
A maneira mais fácil de adicionar essas estruturas é geralmente arrastá-las de uma janela
Finder
diretamente para o painel Project Navigator do Xcode (o painel mais à esquerda, por padrão; ou clicar no ícone do arquivo no canto superior esquerdo do Xcode).Adicione a estrutura Firebase C++
firebase.framework
, necessária para usar qualquer produto Firebase.Adicione a estrutura para cada produto Firebase que você deseja usar. Por exemplo, para usar o Firebase Authentication, adicione
firebase_auth.framework
.
De volta ao console do Firebase, no fluxo de trabalho de configuração, clique em Avançar .
Se você adicionou o Analytics, execute seu aplicativo para enviar a verificação ao Firebase de que você integrou o Firebase com sucesso. Caso contrário, você pode pular esta etapa de verificação.
Os registros do seu dispositivo exibirão a verificação do Firebase de que a inicialização foi concluída. Se você executou seu aplicativo em um emulador com acesso à rede, o console do Firebase notificará que a conexão do aplicativo foi concluída.
Está tudo pronto! Seu aplicativo C++ está registrado e configurado para usar produtos do Firebase.
Bibliotecas disponíveis
Saiba mais sobre as bibliotecas C++ Firebase na documentação de referência e em nossa versão do SDK de código aberto no GitHub .
Bibliotecas disponíveis para plataformas Apple
Observe que as bibliotecas C++ para Android estão listadas na versão Android desta página de configuração .
Cada produto Firebase tem dependências diferentes. Certifique-se de adicionar todas as dependências listadas para o produto Firebase desejado ao seu projeto Podfile e C++.
Cada produto Firebase pode oferecer suporte apenas a uma seleção de plataformas Apple OS (iOS, tvOS etc.). Verifique quais plataformas são suportadas por cada biblioteca em Saiba mais sobre C++ e Firebase .
Produto Firebase | Estruturas e pods |
---|---|
AdMob | (obrigatório) firebase.framework firebase_admob.framework (obrigatório) firebase_analytics.framework pod 'FirebaseAdMob', '10.22.0' (obrigatório) pod 'FirebaseAnalytics', '10.22.0' |
Análise | (obrigatório) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '10.22.0' |
Verificação de aplicativo | (obrigatório) firebase.framework firebase_app_check.framework pod 'FirebaseAppCheck', '10.22.0' |
Autenticação | (obrigatório) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '10.22.0' |
Cloud Fire Store | (obrigatório) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '10.22.0' pod 'FirebaseAuth', '10.22.0' |
Funções de nuvem | (obrigatório) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '10.22.0' |
Mensagens na nuvem | (obrigatório) firebase.framework firebase_messaging.framework (recomendado) firebase_analytics.framework pod 'FirebaseMessaging', '10.22.0' (recomendado) pod 'FirebaseAnalytics', '10.22.0' |
Armazenamento na núvem | (obrigatório) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '10.22.0' |
Links Dinâmicos | (obrigatório) firebase.framework firebase_dynamic_links.framework (recomendado) firebase_analytics.framework pod 'FirebaseDynamicLinks', '10.22.0' (recomendado) pod 'FirebaseAnalytics', '10.22.0' |
Banco de dados em tempo real | (obrigatório) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '10.22.0' |
Configuração remota | (obrigatório) firebase.framework firebase_remote_config.framework (recomendado) firebase_analytics.framework pod 'FirebaseRemoteConfig', '10.22.0' (recomendado) pod 'FirebaseAnalytics', '10.22.0' |
Informações adicionais para configuração móvel
Método giratório
No iOS, alguns eventos de aplicativos (como abertura de URLs e recebimento de notificações) exigem que o delegado do aplicativo implemente métodos específicos. Por exemplo, receber uma notificação pode exigir que o delegado do seu aplicativo implemente application:didReceiveRemoteNotification:
. Como cada aplicativo iOS tem seu próprio delegado de aplicativo, o Firebase usa o método swizzling , que permite a substituição de um método por outro, para anexar seus próprios manipuladores, além de qualquer outro que você possa ter implementado.
As bibliotecas Dynamic Links e Cloud Messaging precisam anexar manipuladores ao delegado do aplicativo usando swizzling de método. Se você estiver usando qualquer um desses produtos do Firebase, no momento do carregamento, o Firebase identificará sua classe AppDelegate
e adicionará os métodos necessários a ela, encadeando uma chamada de retorno à implementação do método existente.
Configurar um fluxo de trabalho de desktop ( beta )
Ao criar um jogo, muitas vezes é muito mais fácil testá-lo primeiro em plataformas de desktop e depois implantá-lo e testá-lo em dispositivos móveis posteriormente no desenvolvimento. Para oferecer suporte a esse fluxo de trabalho, fornecemos um subconjunto de SDKs C++ do Firebase que podem ser executados no Windows, macOS, Linux e no editor C++.
Para fluxos de trabalho de desktop, você precisa concluir o seguinte:
- Configure seu projeto C++ para CMake.
- Crie um projeto do Firebase
- Registre seu aplicativo (iOS ou Android) no Firebase
- Adicionar um arquivo de configuração do Firebase para plataforma móvel
Crie uma versão desktop do arquivo de configuração do Firebase:
Se você adicionou o arquivo
google-services.json
do Android : quando você executa seu aplicativo, o Firebase localiza esse arquivo móvel e gera automaticamente um arquivo de configuração do Firebase para desktop (google-services-desktop.json
).Se você adicionou o arquivo iOS
GoogleService-Info.plist
– antes de executar seu aplicativo, você precisa converter esse arquivo móvel em um arquivo de configuração do Firebase para desktop . Para converter o arquivo, execute o seguinte comando no mesmo diretório do arquivoGoogleService-Info.plist
:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
Este arquivo de configuração da área de trabalho contém o ID do projeto C++ inserido no fluxo de trabalho de configuração do Console do Firebase. Visite Entenda os projetos do Firebase para saber mais sobre os arquivos de configuração.
Adicione SDKs do Firebase ao seu projeto C++.
As etapas abaixo servem como exemplo de como adicionar qualquer produto Firebase compatível ao seu projeto C++. Neste exemplo, explicamos como adicionar o Firebase Authentication e o Firebase Realtime Database.
Defina sua variável de ambiente
FIREBASE_CPP_SDK_DIR
para o local do SDK C++ do Firebase descompactado.Ao arquivo
CMakeLists.txt
do seu projeto, adicione o conteúdo a seguir, incluindo as bibliotecas dos produtos Firebase que você deseja usar. Por exemplo, para usar o Firebase Authentication e o 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}")
Execute seu aplicativo C++.
Bibliotecas disponíveis (desktop)
O SDK do Firebase C++ inclui suporte ao fluxo de trabalho de desktop para um subconjunto de recursos, permitindo que certas partes do Firebase sejam usadas em versões de desktop independentes no Windows, macOS e Linux.
Produto Firebase | Referências de biblioteca (usando CMake) |
---|---|
Verificação de aplicativo | firebase_app_check (obrigatório) firebase_app |
Autenticação | firebase_auth (obrigatório) firebase_app |
Cloud Fire Store | firebase_firestore firebase_auth firebase_app |
Funções de nuvem | firebase_functions (obrigatório) firebase_app |
Armazenamento na núvem | firebase_storage (obrigatório) firebase_app |
Banco de dados em tempo real | firebase_database (obrigatório) firebase_app |
Configuração remota | firebase_remote_config (obrigatório) firebase_app |
O Firebase fornece as bibliotecas de desktop restantes como implementações stub (não funcionais) para maior conveniência ao criar para Windows, macOS e Linux. Portanto, você não precisa compilar condicionalmente o código para direcionar a área de trabalho.
Área de trabalho do banco de dados em tempo real
O Realtime Database SDK para desktop usa REST para acessar seu banco de dados, portanto, você deve declarar os índices usados com Query::OrderByChild()
no desktop ou seus listeners falharão.
Informações adicionais para configuração de desktop
Bibliotecas do Windows
Para Windows, as versões da biblioteca são fornecidas com base no seguinte:
- Plataforma de construção: modo de 32 bits (x86) vs 64 bits (x64)
- Ambiente de execução do Windows: Multithreaded/MT vs Multithreaded DLL/MD
- Alvo: Liberação vs Depuração
Observe que as bibliotecas a seguir foram testadas usando o Visual Studio 2015 e 2017.
Ao criar aplicativos de área de trabalho C++ no Windows, vincule as seguintes bibliotecas do SDK do Windows ao seu projeto. Consulte a documentação do seu compilador para obter mais informações.
Biblioteca C++ do Firebase | Dependências da biblioteca do SDK do Windows |
---|---|
Verificação de aplicativo | advapi32, ws2_32, crypt32 |
Autenticação | advapi32, ws2_32, crypt32 |
Cloud Fire Store | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
Funções de nuvem | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Armazenamento na núvem | advapi32, ws2_32, crypt32 |
Banco de dados em tempo real | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
Configuração remota | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Bibliotecas macOS
Para macOS (Darwin), são fornecidas versões de biblioteca para a plataforma de 64 bits (x86_64). Estruturas também são fornecidas para sua conveniência.
Observe que as bibliotecas do macOS foram testadas usando o Xcode 13.3.1.
Ao criar aplicativos de desktop C++ no macOS, vincule o seguinte ao seu projeto:
- biblioteca do sistema
pthread
- Estrutura do sistema
CoreFoundation
macOS - Estrutura do sistema macOS
Foundation
- Estrutura do sistema macOS
Security
- Estrutura do sistema
GSS
macOS - Estrutura do sistema
Kerberos
macOS - Estrutura do sistema macOS
SystemConfiguration
Consulte a documentação do seu compilador para obter mais informações.
Bibliotecas Linux
Para Linux, as versões da biblioteca são fornecidas para plataformas de 32 bits (i386) e 64 bits (x86_64).
Observe que as bibliotecas Linux foram testadas usando GCC 4.8.0, GCC 7.2.0 e Clang 5.0 no Ubuntu.
Ao criar aplicativos de desktop C++ no Linux, vincule a biblioteca do sistema pthread
ao seu projeto. Consulte a documentação do seu compilador para obter mais informações. Se você estiver construindo com GCC 5 ou posterior, defina -D_GLIBCXX_USE_CXX11_ABI=0
.
Próximos passos
Explore exemplos de aplicativos do Firebase .
Explore o SDK de código aberto no GitHub .
Prepare-se para lançar seu aplicativo:
- Configure alertas de orçamento para seu projeto no console do Google Cloud.
- Monitore o painel de uso e faturamento no console do Firebase para ter uma visão geral do uso do seu projeto em vários serviços do Firebase.
- Revise a lista de verificação de lançamento do Firebase .