获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Adicione o Firebase ao seu projeto C++

Aprimore seus jogos C++ com nossos SDKs C++ do Firebase, que fornecem uma interface C++ sobre o Firebase para iOS e Android.

Acesse o Firebase inteiramente 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 de linguagem usados ​​pelo Firebase em uma interface mais familiar aos desenvolvedores de C++.

Encontre mais informações sobre como aprimorar 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 Firebase C++ SDK .

Pré-requisitos

  • Instale o seguinte:

    • Xcode 13.3.1 ou posterior
    • CocoaPods 1.10.0 ou posterior
  • Certifique-se de que seu projeto tenha como alvo as seguintes versões de plataforma ou posteriores:

    • iOS 11
  • Configure um dispositivo iOS físico ou use o simulador iOS para executar seu aplicativo.

  • 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 C++, você precisa criar um projeto Firebase para se conectar ao seu projeto C++. Acesse Entender os projetos do Firebase para saber mais sobre os projetos do Firebase.

Etapa 3 : registrar seu aplicativo no Firebase

Para usar o Firebase em seu aplicativo da Apple, você precisa registrá-lo no projeto do Firebase. Registrar seu aplicativo geralmente é chamado de "adicionar" seu aplicativo ao seu projeto.

  1. Acesse o console do Firebase .

  2. 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.

  3. Insira o ID do pacote do seu aplicativo no campo ID do pacote .

  4. (Opcional) Insira outras informações do aplicativo: apelido do aplicativo e ID da App Store .

  5. Clique em Registrar aplicativo .

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

  1. Clique em Baixar GoogleService-Info.plist para obter o arquivo de configuração das plataformas Firebase Apple.

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

  3. 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++.

  1. Faça o download do SDK do Firebase C++ e descompacte o SDK em um local conveniente.

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

  2. Adicione pods do Firebase do SDK descompactado.

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

      cd your-app-directory
      pod init

    2. 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'
    3. Instale os pods e abra o arquivo .xcworkspace no Xcode.

      pod install
      open your-app.xcworkspace

  3. Adicione os frameworks do Firebase do SDK descompactado.

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

    1. Adicione a estrutura Firebase C++ firebase.framework , que é necessária para usar qualquer produto Firebase.

    2. Adicione a estrutura para cada produto do Firebase que você deseja usar. Por exemplo, para usar o Firebase Authentication, adicione firebase_auth.framework .

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

  5. Se você adicionou o Analytics, execute seu aplicativo para enviar ao Firebase uma verificação 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 Firebase console notificará que a conexão do aplicativo foi concluída.

Você está pronto! Seu aplicativo C++ está registrado e configurado para usar produtos Firebase.

Bibliotecas disponíveis

Saiba mais sobre as bibliotecas C++ do Firebase na documentação de referência e em nossa versão do SDK de código aberto no GitHub .

Bibliotecas disponíveis para iOS

Observe que as bibliotecas C++ para Android estão listadas na versão Android desta página de configuração .

Cada produto do 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++.

Produto Firebase Estruturas e pods
AdMob (obrigatório) firebase.framework
firebase_admob.framework
(obrigatório) firebase_analytics.framework

pod 'FirebaseAdMob', '10.1.0'
(obrigatório) pod 'FirebaseAnalytics', '10.1.0'
Análise (obrigatório) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '10.1.0'
Autenticação (obrigatório) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '10.1.0'
Cloud Firestore (obrigatório) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '10.1.0'
pod 'FirebaseAuth', '10.1.0'
Funções de nuvem (obrigatório) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.1.0'
Mensagens na nuvem (obrigatório) firebase.framework
firebase_messaging.framework
(recomendado) firebase_analytics.framework

pod 'FirebaseMessaging', '10.1.0'
(recomendado) pod 'FirebaseAnalytics', '10.1.0'
Armazenamento na núvem (obrigatório) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.1.0'
Links dinâmicos (obrigatório) firebase.framework
firebase_dynamic_links.framework
(recomendado) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '10.1.0'
(recomendado) pod 'FirebaseAnalytics', '10.1.0'
Banco de dados em tempo real (obrigatório) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.1.0'
Configuração remota (obrigatório) firebase.framework
firebase_remote_config.framework
(recomendado) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '10.1.0'
(recomendado) pod 'FirebaseAnalytics', '10.1.0'

Informações adicionais para configuração móvel

Swizzling de métodos

No iOS, alguns eventos do aplicativo (como abrir URLs e receber notificações) exigem que o delegado do aplicativo implemente métodos específicos. Por exemplo, receber uma notificação pode exigir que seu representante de 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 o método swizzling. Se você estiver usando qualquer um desses produtos do Firebase, no momento do carregamento, o Firebase identificará sua classe AppDelegate e incluirá os métodos necessários nela, encadeando uma chamada de volta à sua implementação de método existente.

Configurar um fluxo de trabalho para desktop ( beta )

Quando você está criando um jogo, geralmente é muito mais fácil testar seu jogo em plataformas de desktop primeiro e depois implantar e testar em dispositivos móveis posteriormente no desenvolvimento. Para oferecer suporte a esse fluxo de trabalho, fornecemos um subconjunto dos SDKs do Firebase C++ que podem ser executados no Windows, macOS, Linux e no editor C++.

  1. Para fluxos de trabalho de desktop, você precisa concluir o seguinte:

    1. Configure seu projeto C++ para CMake.
    2. Criar um projeto do Firebase
    3. Registre seu aplicativo (iOS ou Android) no Firebase
    4. Adicionar um arquivo de configuração do Firebase de plataforma móvel
  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 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 arquivo GoogleService-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++ que você inseriu no fluxo de trabalho de configuração do Firebase console. Acesse Entender os projetos do Firebase para saber mais sobre os arquivos de configuração.

  3. Adicione SDKs do Firebase ao seu projeto C++.

    As etapas abaixo servem como um 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.

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

    2. 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}")
      
  4. Execute seu aplicativo C++.

Bibliotecas disponíveis (computador)

O Firebase C++ SDK inclui suporte para fluxo de trabalho de desktop para um subconjunto de recursos, permitindo que certas partes do Firebase sejam usadas em compilações de desktop independentes no Windows, macOS e Linux.

Produto Firebase Referências de biblioteca (usando CMake)
Autenticação firebase_auth
(obrigatório) firebase_app
Cloud Firestore 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 de stub (não funcionais) para conveniência ao compilar 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 Realtime Database

O SDK do Realtime Database para desktop usa REST para acessar seu banco de dados, portanto, você deve declarar os índices que usa com Query::OrderByChild() no desktop ou seus ouvintes falharão.

Informações adicionais para configuração da área de trabalho

Bibliotecas do Windows

Para Windows, as versões de biblioteca são fornecidas com base no seguinte:

  • Plataforma de compilação: modo de 32 bits (x86) versus 64 bits (x64)
  • Ambiente de tempo de execução do Windows: Multithreaded / MT vs Multithreaded DLL /MD
  • Destino: lançamento vs depuração

Observe que as bibliotecas a seguir foram testadas usando o Visual Studio 2015 e 2017.

Ao criar aplicativos de desktop C++ no Windows, vincule as seguintes bibliotecas do SDK do Windows ao seu projeto. Consulte a documentação do compilador para obter mais informações.

Biblioteca Firebase C++ Dependências da biblioteca do Windows SDK
Autenticação advapi32, ws2_32, crypt32
Cloud Firestore 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 do macOS

Para macOS (Darwin), as versões de biblioteca são fornecidas 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 macOS CoreFoundation
  • Estrutura básica do sistema Foundation
  • Estrutura do sistema macOS de Security
  • Estrutura do sistema GSS macOS
  • Estrutura do sistema Kerberos macOS
  • Estrutura do sistema macOS SystemConfiguration

Consulte a documentação do compilador para obter mais informações.

Bibliotecas Linux

Para Linux, as versões de biblioteca são fornecidas para plataformas de 32 bits (i386) e 64 bits (x86_64).

Observe que as bibliotecas do 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 compilador para obter mais informações. Se você estiver compilando com o GCC 5 ou posterior, defina -D_GLIBCXX_USE_CXX11_ABI=0 .

Próximos passos