Ir para o console

Adicionar o Firebase ao seu projeto em C++plat_iosplat_androidplat_cpp

Melhore seus jogos em C++ com nossos SDKs do Firebase para C++, que fornecem uma interface em C++ no Firebase para iOS e Android.

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 ativar seus jogos com o Firebase na nossa página do Firebase para jogos.

Etapa 1: configurar seu ambiente

  • Instale o Xcode 9.4.1 ou versões posteriores.

  • Instale o CocoaPods 1.4.0 ou versões posteriores.

  • Abra seu projeto em C++ no Xcode.

    • Seu app precisa segmentar o iOS 8 ou versões posteriores.
  • Configure um dispositivo ou emulador para executar seu app.

    • Para o Cloud Messaging, você precisará de:
      • um dispositivo físico com iOS;
      • um certificado de APNs com notificações push ativadas.
  • 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

É possível registrar um ou mais apps para conectar ao seu projeto do Firebase.

Consulte o artigo Noções básicas sobre projetos do Firebase para ver práticas recomendadas e informações sobre como adicionar apps a um projeto do Firebase, incluindo como lidar com diversas variantes de versão.

  1. No centro da página de visão geral do projeto do Console do Firebase, clique no ícone do iOS para iniciar o fluxo de trabalho da configuração.

    Se você já adicionou um app ao seu projeto do Firebase, clique em Adicionar app para exibir as opções da plataforma.

  2. Insira o ID do pacote do seu app no campo ID do pacote do iOS.

    • Encontre o código do pacote do seu projeto aberto no XCode. Selecione o app de nível superior no navegador de projetos à esquerda e acesse a guia Geral. O valor do Identificador do pacote é o ID do pacote do iOS, por exemplo, com.yourcompany.ios-app-name.
  3. (Opcional) Insira outras informações do app conforme solicitado pelo fluxo de trabalho de configuração.

    O apelido é um identificador interno visível apenas no Console do Firebase.

  4. Clique em Registrar aplicativo.

Etapa 4: adicionar o arquivo de configuração do Firebase

  1. Clique em Fazer o download do GoogleService-Info.plist para receber o arquivo de configuração do Firebase para iOS.

  2. Abra seu projeto em C++ em um ambiente de desenvolvimento integrado e arraste seu arquivo de configuração para a raiz do projeto em C++.

  3. Quando solicitado, selecione a opção de adicionar o arquivo de configuração a todos os destinos.

  4. 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 qualquer produto do Firebase compatível ao seu projeto em C++. A seguir, veremos como adicionar o Google Analytics para Firebase.

Adicionar o Google Analytics para Firebase ao seu projeto em C++ é opcional, mas é uma maneira relativamente fácil de verificar se o Firebase está funcionando corretamente com seu app. Além disso, o Analytics pode ser muito útil durante o desenvolvimento e a depuração, além de ajudar a monitorar o sucesso dos seus apps de produção.

  1. Faça o download do SDK do Firebase para C++ e descompacte o SDK em um local prático.

    O SDK do Firebase para C++ não é específico da plataforma, mas contém bibliotecas específicas.

  2. Adicione pods do Firebase a partir do SDK descompactado.

    1. Crie um Podfile, se ainda não tiver um:

      cd your-app-directory
      pod init

    2. No seu Podfile, adicione os pods de cada produto do Firebase que você quer usar. Para o Analytics, execute:

      pod 'Firebase/Analytics', '5.12.0'

    3. Instale os pods e abra o arquivo .xcworkspace no Xcode.

      pod install
      open your-app.xcworkspace

  3. Adicione os frameworks do Firebase a partir do SDK descompactado.

    O jeito mais fácil de adicionar esses frameworks geralmente é arrastá-los de uma janela do Finder diretamente para o painel Project Navigator do Xcode (à esquerda) ou clicar no ícone de arquivo no canto superior esquerdo do Xcode.

    1. Adicione o framework básico do Firebase (firebase.framework), que é necessário para usar qualquer produto do Firebase.

    2. Adicione a biblioteca de cada produto do Firebase que você quiser usar. Para o Analytics, adicione firebase_analytics.framework.

  4. De volta ao fluxo de trabalho de configuração no Console do Firebase, clique em Avançar.

  5. Execute seu app para enviar a confirmação de que você integrou o Firebase com sucesso.

    Os registros do dispositivo exibirão a confirmaçã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 produtos 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 iOS

Observe que as bibliotecas C++ para Android estão listadas na página Configuração da versão Android.

Cada produto do Firebase tem dependências diferentes. Certifique-se de adicionar todas as dependências listadas para o produto do Firebase desejado ao Podfile e ao seu projeto em C++.

Produto do Firebase Bibliotecas e pods
Firebase básico (obrigatório)

firebase.framework
  pod 'Firebase/Analytics', '6.1.0'
AdMob

firebase.framework
  firebase_admob.framework
  pod 'Firebase/Analytics', '6.1.0'
  pod 'Firebase/AdMob', '6.1.0'
Google Analytics

firebase.framework
  firebase_analytics.framework
  pod 'Firebase/Analytics', '6.1.0'
Authentication

firebase.framework
  firebase_auth.framework
  pod 'Firebase/Analytics', '6.1.0'
  pod 'Firebase/Auth', '6.1.0'
Cloud Functions

firebase.framework
  firebase_functions.framework
  pod 'Firebase/Analytics', '6.1.0'
  pod 'Firebase/Functions', '6.1.0'
Cloud Messaging

firebase.framework
  firebase_messaging.framework
  pod 'Firebase/Analytics', '6.1.0'
  pod 'Firebase/Messaging', '6.1.0'
Cloud Storage

firebase.framework
  firebase_storage.framework
  pod 'Firebase/Analytics', '6.1.0'
  pod 'Firebase/Storage', '6.1.0'
Dynamic Links

firebase.framework
  firebase_dynamic_links.framework
  pod 'Firebase/Analytics', '6.1.0'
  pod 'Firebase/DynamicLinks', '6.1.0'
Realtime Database

firebase.framework
  firebase_database.framework
  pod 'Firebase/Analytics', '6.1.0'
  pod 'Firebase/Database', '6.1.0'
Configuração remota

firebase.framework
  firebase_remote_config.framework
  pod 'Firebase/Analytics', '6.1.0'
  pod 'Firebase/RemoteConfig', '6.1.0'
  

Informações adicionais para configuração em dispositivos móveis

Swizzling de métodos

No iOS, eventos de aplicativo, como abertura de URLs e recebimento de notificações, exigem que o representante do seu app implemente métodos específicos. Por exemplo, receber uma notificação pode exigir que o representante implemente application:didReceiveRemoteNotification:. Já que cada aplicativo para iOS tem seu próprio representante, o Firebase usa swizzling de métodos, que permite a substituição de um método por outro, para conectar os próprios gerenciadores dele além de outros que você pode ter implementado.

As bibliotecas do Firebase Invites, Dynamic Links e Cloud Messaging usam o método swizzling para conectar gerenciadores ao representante do aplicativo. Se você estiver usando qualquer um desses produtos do Firebase, no momento do carregamento, o Firebase identificará a classe AppDelegate e fará o swizzling dos métodos necessários para dentro dela, direcionando um retorno de chamada à implementação do método existente.

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 para C++ que pode ser executado no Windows, OS X, Linux e no editor do C++:

  1. Para fluxos de trabalho em computadores, faça o seguinte:

  2. Crie uma versão para computador do arquivo de configuração do Firebase:

    • Se você adicionou o arquivo google-services.json do Android: quando você executa seu app, o Firebase localiza esse arquivo para dispositivos móveis e gera automaticamente um arquivo de configuração do Firebase para computadores (google-services-desktop.json).

    • Se você adicionou o arquivo GoogleService-Info.plist do iOS: antes de executar seu app, é necessário converter esse arquivo para dispositivos móveis em um arquivo de configuração do Firebase para computadores. 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 código 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.

  3. 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++. A seguir, veremos como adicionar o Google Analytics para Firebase.

    1. Defina sua variável de ambiente FIREBASE_CPP_SDK_DIR para o local do SDK do Firebase para C++ descompactado.

    2. 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 o Analytics:

      # Add Firebase libraries to the target using the function from the SDK.
      add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
      
      # The core Firebase library (firebase_app) is required to use any Firebase product,
      # and it must always be listed last.
      set(firebase_libs firebase_analytics firebase_app)
      target_link_libraries(${target_name} "${firebase_libs}")
      
  4. Execute seu app em C++.

Bibliotecas disponíveis (computador)

O SDK do Firebase para 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, OS X e Linux.

Produto do Firebase Referência de biblioteca (usando o CMake)
Firebase básico (obrigatório) firebase_app
Authentication firebase_auth
Cloud Functions firebase_functions
Cloud Storage firebase_storage
Realtime Database firebase_database
Configuração remota firebase_remote_config

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, OS X e Linux. Elas eliminam a necessidade de compilar códigos de modo condicional na segmentação para computadores.

Realtime Database em computadores

O SDK do Realtime Database para computadores usa REST para acessar seu banco de dados. Sendo assim, você precisa declarar os índices usados 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
Authentication advapi32, ws2_32, crypt32
Cloud Functions advapi32, ws2_32, crypt32, rpcrt4, ole32
Cloud Storage advapi32, ws2_32, crypt32
Realtime Database advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Configuração remota advapi32, ws2_32, crypt32, rpcrt4, ole32

Bibliotecas do OS X

No OS X (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 OS X foram testadas usando o Xcode 9.4.1.

Ao criar aplicativos de computador em C++ no OS X, vincule o seguinte ao seu projeto:

  • Biblioteca do sistema pthread
  • Framework CoreFoundation do sistema OS X
  • Framework Foundation do sistema OS X
  • Framework Security do sistema OS X

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 posteriores, defina -D_GLIBCXX_USE_CXX11_ABI=0.

Próximas etapas