Adicione o Firebase ao seu projeto C++

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 seu editor ou IDE preferido, como Android Studio, IntelliJ ou VS Code.

  • Obtenha o SDK do Android .

  • Certifique-se de que seu projeto atenda a estes requisitos:

  • Configure um dispositivo físico ou use um emulador para executar seu aplicativo.

    • Os emuladores devem usar uma imagem de emulador com o Google Play.

    • Para algumas bibliotecas C++, o Google Play Services é necessário no dispositivo cliente; revise a lista nesta página.

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

  1. No console do Firebase , clique em Adicionar projeto .

    • Para adicionar recursos do Firebase a um projeto existente do Google Cloud, insira o nome do projeto ou selecione-o no menu suspenso.

    • Para criar um novo projeto, insira o nome do projeto desejado. Opcionalmente, você também pode editar o ID do projeto exibido abaixo do nome do projeto.

  2. Se solicitado, revise e aceite os termos do Firebase .

  3. Clique em Continuar .

  4. (Opcional) Configure o Google Analytics para seu projeto, o que permite que você tenha uma experiência ideal usando qualquer um dos seguintes produtos do Firebase:

    Selecione uma conta existente do Google Analytics ou crie uma nova conta.

    Se você criar uma nova conta, selecione o local dos relatórios do Analytics e aceite as configurações de compartilhamento de dados e os termos do Google Analytics para seu projeto.

  5. Clique em Criar projeto (ou Adicionar Firebase , se você estiver usando um projeto existente do Google Cloud).

O Firebase provisiona recursos automaticamente para seu projeto do Firebase. Quando o processo for concluído, você será direcionado para a página de visão geral do seu projeto do Firebase no console do Firebase.

Etapa 3 : registre seu aplicativo no Firebase

Para usar o Firebase em seu aplicativo Android, você precisa registrar seu aplicativo no projeto do Firebase. Registrar seu aplicativo geralmente é chamado de "adicionar" seu aplicativo ao projeto.

  1. Vá para o console do Firebase .

  2. No centro da página de visão geral do projeto, clique no ícone do Android ( ) ou em Adicionar aplicativo para iniciar o fluxo de trabalho de configuração.

  3. Insira o nome do pacote do seu aplicativo no campo Nome do pacote Android .

    • Um nome de pacote identifica exclusivamente seu aplicativo no dispositivo e na Google Play Store.

    • Um nome de pacote geralmente é chamado de ID de aplicativo .

    • Encontre o nome do pacote do seu aplicativo no arquivo Gradle do módulo (nível do aplicativo), geralmente app/build.gradle (exemplo de nome do pacote: com.yourcompany.yourproject ).

    • Esteja ciente de que o valor do nome do pacote diferencia maiúsculas de minúsculas e não pode ser alterado para este aplicativo Android do Firebase depois de registrado no seu projeto do Firebase.

  4. (Opcional) Insira outras informações do aplicativo: apelido do aplicativo e certificado de assinatura de depuração SHA-1 .

  5. Clique em Registrar aplicativo .

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

  1. Clique em Baixar google-services.json para obter seu arquivo de configuração do Firebase Android.

    • 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) .

  2. Abra seu projeto C++ em um IDE e adicione seu arquivo de configuração ao seu projeto:

  3. (Somente compilações do Gradle) Para ativar os serviços do Firebase em seu projeto C++, adicione o plug-in google-services ao arquivo build.gradle de nível superior.

    1. Adicione regras para incluir o plug-in Gradle do Google Services. Verifique se você também possui o repositório Maven do Google.

        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.1'  // Google Services plugin
            implementation
      'com.google.android.gms:18.3.0'
         
      }
       
      }

        allprojects
      {
         
      // ...

          repositories
      {
           
      // Check that you have the following line (if not, add it):
            google
      ()  // Google's Maven repository
           
      // ...
         
      }
       
      }
    2. Aplique o plug-in Google Services Gradle:

        apply plugin: 'com.android.application'
       
      // Add the following line:
        apply plugin
      : 'com.google.gms.google-services'  // Google Services plugin

        android
      {
         
      // ...
       
      }
  4. 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 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.

  2. No arquivo gradle.properties do seu projeto, especifique o local do SDK descompactado:

    systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
  3. Ao arquivo settings.gradle do seu projeto, adicione o seguinte conteúdo:

    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"
  4. Ao arquivo Gradle do módulo (nível do aplicativo) (geralmente app/build.gradle ), adicione o seguinte conteúdo.
    Inclua as dependências da biblioteca dos produtos do Firebase que você quer usar no seu aplicativo.

    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
    }
    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
    }
  5. Ao arquivo CMakeLists.txt do seu projeto, adicione o seguinte conteúdo.
    Inclua as bibliotecas dos produtos do Firebase que você quer usar no seu aplicativo.

    # 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}")
    # 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}")
  6. Sincronize seu aplicativo para garantir que todas as dependências tenham as versões necessárias.

  7. 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 a 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 os serviços do Firebase.

  1. Certifique-se de ter o Android NDK v10d ou posterior.
  2. 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.

  3. Abra seu arquivo local.properties e então:

    • Defina a variável firebase_cpp_sdk.dir como o local do SDK do Firebase C++ descompactado.
    • Defina a variável ndk.dir como o local do Android NDK .
  4. Para usar o suporte integrado ao ndkBuild do Gradle, crie um diretório jni em seu diretório de nível superior e, em seguida, crie os seguintes arquivos make .

    1. Crie um arquivo jni/Application.mk com o seguinte:

      APP_PLATFORM:=android-14
      NDK_TOOLCHAIN_VERSION
      =clang
      APP_ABI
      :=armeabi-v7a arm64-v8a x86 x86_64
      APP_STL
      :=c++_static
      APP_MODULES
      :=android_main
      APP_CPPFLAGS
      +=-std=c++11
    2. Crie um arquivo jni/Android.mk com o conteúdo a seguir.

      Inclua as bibliotecas do produto Firebase que você deseja usar. Por exemplo, para usar o Analytics:

      LOCAL_PATH:=$(call my-dir)/..

      ifeq
      ($(FIREBASE_CPP_SDK_DIR),)
      $
      (error FIREBASE_CPP_SDK_DIR must specify the Firebase package location.)
      endif

      # With Firebase libraries for the selected build configuration (ABI + STL)
      STL
      :=$(firstword $(subst _, ,$(APP_STL)))
      FIREBASE_LIBRARY_PATH
      :=\
      $
      (FIREBASE_CPP_SDK_DIR)/libs/android/$(TARGET_ARCH_ABI)/$(STL)

      # The Firebase C++ library `libfirebase_app.a` is required for all Firebase products.
      include $
      (CLEAR_VARS)
      LOCAL_MODULE
      :=firebase_app
      LOCAL_SRC_FILES
      :=$(FIREBASE_LIBRARY_PATH)/libfirebase_app.a
      LOCAL_EXPORT_C_INCLUDES
      :=$(FIREBASE_CPP_SDK_DIR)/include
      include $
      (PREBUILT_STATIC_LIBRARY)

      # Include the Firebase library for Google Analytics.
      # Note: Duplicate this block for each Firebase product that you want
      # to use in your app, and replace variable values as appropriate.
      include $
      (CLEAR_VARS)
      LOCAL_MODULE
      :=firebase_analytics
      LOCAL_SRC_FILES
      :=$(FIREBASE_LIBRARY_PATH)/libfirebase_analytics.a
      LOCAL_EXPORT_C_INCLUDES
      :=$(FIREBASE_CPP_SDK_DIR)/include
      include $
      (PREBUILT_STATIC_LIBRARY)

      include $
      (CLEAR_VARS)
      LOCAL_MODULE
      :=android_main
      # Reference your project's C++ source files
      LOCAL_SRC_FILES
      :=\
        $
      (LOCAL_PATH)/src/common_main.cc \
        $
      (LOCAL_PATH)/src/android/android_main.cc
      LOCAL_STATIC_LIBRARIES
      :=\
        firebase_analytics
      \
        firebase_app  
      # this library reference must always be listed last
      LOCAL_WHOLE_STATIC_LIBRARIES
      :=\
        android_native_app_glue
      LOCAL_C_INCLUDES
      :=\
        $
      (NDK_ROOT)/sources/android/native_app_glue \
        $
      (LOCAL_PATH)/src
      LOCAL_LDLIBS
      :=-llog -landroid -latomic
      LOCAL_ARM_MODE
      :=arm
      LOCAL_LDFLAGS
      :=-Wl,-z,defs -Wl,--no-undefined
      include $
      (BUILD_SHARED_LIBRARY)

      $
      (call import-add-path,$(NDK_ROOT)/sources/android)
      $
      (call import-module,android/native_app_glue)
  5. Abra seu arquivo build.gradle de nível superior e conclua as seguintes etapas:

    1. Adicione as dependências dos produtos Firebase que você deseja usar. Por exemplo, para usar o Analytics:

      dependencies {
        implementation
      'com.google.firebase:firebase-analytics:21.0.0'
      }
    2. Adicione as linhas a seguir para que seu projeto use o suporte integrado ao ndk-build do Gradle para incluir as bibliotecas do Firebase especificadas em seu arquivo jni/Android.mk .

      android {
      // ...
          defaultConfig
      {
             
      // ...
              externalNativeBuild
      .ndkBuild {
                  arguments
      "FIREBASE_CPP_SDK_DIR=${project.ext.firebase_cpp_sdk_dir}",
                           
      "NDK_APPLICTION_MK=jni/Application.mk",
                            sprintf
      ("APP_PLATFORM=android-%d",
                            android
      .defaultConfig.minSdkVersion.mApiLevel)
             
      }
         
      }
      }

Cada produto Firebase tem dependências diferentes. Certifique-se de adicionar todas as dependências listadas para os produtos Firebase que você deseja usar.

Adicione bibliotecas Firebase C++ (como libfirebase_app.a ) incluindo-as no arquivo jni/Android.mk de nível superior. Para outras dependências (como com.google.firebase:firebase-auth ), adicione-as ao seu arquivo build.gradle de nível superior.

Produto Firebase Bibliotecas e Dependências
AdMob libfirebase_admob.a
(obrigatório) libfirebase_analytics.a
(obrigatório) libfirebase_app.a

implementation 'com.google.firebase:firebase-ads:19.8.0'
(obrigatório) implementation 'com.google.firebase:firebase-analytics:21.0.0'
Análise libfirebase_analytics.a
(obrigatório) libfirebase_app.a

implementation 'com.google.firebase:firebase-analytics:21.0.0'
Verificação de aplicativo libfirebase_app_check.a
(obrigatório) libfirebase_app.a

implementation 'com.google.firebase:firebase-appcheck:17.0.0'
Autenticação libfirebase_auth.a
(obrigatório) libfirebase_app.a

implementation 'com.google.firebase:firebase-auth:21.0.5'
Cloud Fire Store libfirebase_firestore.a
(obrigatório) libfirebase_app.a

implementation 'com.google.firebase:firebase-firestore:24.1.2'
Funções de nuvem libfirebase_functions.a
(obrigatório) libfirebase_app.a

implementation 'com.google.firebase:firebase-functions:20.1.0'
Mensagens na nuvem libfirebase_messaging.a
(recomendado) libfirebase_analytics.a
(obrigatório) libfirebase_app.a

implementation 'com.google.firebase:firebase-messaging:23.0.5'
Implementação (recomendada) implementation 'com.google.firebase:firebase-analytics:21.0.0'
Armazenamento na núvem libfirebase_storage.a
(obrigatório) libfirebase_app.a

implementation 'com.google.firebase:firebase-storage:20.0.1'
Links Dinâmicos ibfirebase_dynamic_links.a
(recomendado) libfirebase_analytics.a
(obrigatório) libfirebase_app.a

implementation 'com.google.firebase:firebase-dynamic-links:21.0.1'
Implementação (recomendada) implementation 'com.google.firebase:firebase-analytics:21.0.0'
Banco de dados em tempo real libfirebase_database.a
(obrigatório) libfirebase_app.a

implementation 'com.google.firebase:firebase-database:20.0.5'
Configuração remota libfirebase_remote_config.a
(recomendado) libfirebase_analytics.a
(obrigatório) libfirebase_app.a

implementation 'com.google.firebase:firebase-config:21.1.0'
Implementação (recomendada) implementation 'com.google.firebase:firebase-analytics:21.0.0'

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 Android (usando CMake)

Observe que as bibliotecas C++ para plataformas Apple estão listadas na versão das plataformas Apple (iOS+) desta página de configuração .

Produto Firebase Referências de biblioteca
( firebaseCpp.dependencies
para arquivo build.gradle )
Referências de biblioteca
( firebase_libs
para arquivo CMakeLists.txt )
AdMob admob firebase_admob
(obrigatório) firebase_analytics
(obrigatório) firebase_app
Análise analytics firebase_analytics
(obrigatório) firebase_app
Verificação de aplicativo appCheck firebase_app_check
(obrigatório) firebase_app
Autenticação auth firebase_auth
(obrigatório) firebase_app
Cloud Fire Store firestore firebase_firestore
(obrigatório) firebase_auth
(obrigatório) firebase_app
Funções de nuvem functions firebase_functions
(obrigatório) firebase_app
Mensagens na nuvem messaging firebase_messaging
(recomendado) firebase_analytics
(obrigatório) firebase_app
Armazenamento na núvem storage firebase_storage
(obrigatório) firebase_app
Links Dinâmicos dynamicLinks firebase_dynamic_links
(recomendado) firebase_analytics
(obrigatório) firebase_app
Banco de dados em tempo real database firebase_database
(obrigatório) firebase_app
Configuração remota remoteConfig firebase_remote_config
(recomendado) firebase_analytics
(obrigatório) firebase_app

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

Obtenha relatórios de falhas do NDK

O Firebase Crashlytics oferece suporte a relatórios de erros para aplicativos que usam bibliotecas nativas do Android. Para saber mais, consulte Obter relatórios de falhas do Android NDK .

Sistemas de construção personalizados

O Firebase fornece o script generate_xml_from_google_services_json.py para converter recursos google-services.json em .xml que você pode incluir em seu projeto. Este script aplica a mesma transformação que o plug-in Gradle do Google Play Services executa ao criar aplicativos Android.

Se você não constrói usando Gradle (por exemplo, usa ndk-build, makefiles, Visual Studio, etc.), você pode usar este script para automatizar a geração de Android String Resources .

ProGuard

Muitos sistemas de compilação Android usam o ProGuard para compilações no modo Release para reduzir o tamanho dos aplicativos e proteger o código-fonte Java.

Se você usar o ProGuard, precisará adicionar os arquivos em libs/android/*.pro correspondentes às bibliotecas Firebase C++ que você está usando na configuração do ProGuard.

Por exemplo, com Gradle, se você estiver usando o Google Analytics, seu arquivo build.gradle ficaria assim:

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 de serviços do Google Play

A maioria das bibliotecas Firebase C++ exige que o Google Play Services esteja no dispositivo Android do cliente. Se uma biblioteca Firebase C++ retornar kInitResultFailedMissingDependency na inicialização, significa que o Google Play Services não está disponível no dispositivo cliente (o que significa que ele precisa ser atualizado, reativado, permissões corrigidas, etc.). A biblioteca do Firebase não poderá ser usada até que a situação no dispositivo cliente seja corrigida.

Você pode descobrir por que o Google Play Services não está disponível no dispositivo cliente (e tentar consertar) usando as funções em google_play_services/availability.h .

A tabela a seguir lista se o Google Play Services é necessário em um dispositivo cliente para cada produto Firebase compatível.

Biblioteca C++ do Firebase Os serviços do Google Play são necessários no dispositivo cliente?
AdMob Não é obrigatório (geralmente)
Análise Não requerido
Autenticação Obrigatório
Cloud Fire Store Obrigatório
Funções de nuvem Obrigatório
Mensagens na nuvem Obrigatório
Armazenamento na núvem Obrigatório
Links Dinâmicos Obrigatório
Banco de dados em tempo real Obrigatório
Configuração remota Obrigatório

Serviços da AdMob e do Google Play

A maioria das versões do SDK de anúncios para dispositivos móveis do Google para Android pode funcionar corretamente sem o Google Play Services no dispositivo do cliente. No entanto, se você estiver usando a dependência com.google.android.gms:play-services-ads-lite , em vez da dependência padrão com.google.firebase:firebase-ads listada acima, o Google Play Services será obrigatório .

A inicialização da AdMob só retornará kInitResultFailedMissingDependency quando ambas as condições a seguir forem verdadeiras:

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

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

    1. Configure seu projeto C++ para CMake.
    2. Crie um projeto do Firebase
    3. Registre seu aplicativo (iOS ou Android) no Firebase
    4. Adicionar um arquivo de configuração do Firebase para plataforma móvel
  2. 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 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++ 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.

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

    1. Defina sua variável de ambiente FIREBASE_CPP_SDK_DIR para o local do SDK C++ do Firebase 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 (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