O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Adicione o Firebase ao projeto do Unity.

Melhore seus jogos do Unity com nossos SDKs do Firebase para Unity.

Para mostrar como é fácil conectar o Firebase ao seu projeto do Unity, preparamos um jogo de amostra “MechaHamster” que está disponível para download no GitHub, na App Store e na Google Play Store.

MechaHamster (GitHub)

MechaHamster (App Store)

MechaHamster (Play Store)


Veja mais informações sobre como ativar seus jogos com o Firebase na nossa página do Firebase para jogos.

Já adicionou o Firebase ao seu projeto do Unity? Verifique se você está usando a versão mais recente do SDK do Firebase para Unity.

Pré-requisitos

  • Instale o Unity 5.3 ou posterior.

  • Instale os seguintes itens (somente para iOS):

    • Xcode 9.4.1 ou posterior
    • CocoaPods 1.4.0 ou posterior
  • Verifique se o projeto do Unity atende a estes requisitos:

    • Para iOS: segmenta o iOS 8 ou posterior
    • Para Android: segmenta o nível 16 da API (Jelly Bean) ou posterior
  • Configure um dispositivo físico ou use um emulador para executar seu aplicativo.

    • Para iOS: configure um dispositivo físico com iOS ou use o simulador iOS.

    • Para Android: os emuladores precisam usar uma imagem de emulador no Google Play.

Se você ainda não tem um projeto do Unity e quer testar um produto do Firebase, faça o download de um dos nossos exemplos de guia de início rápido (em inglês).

Etapa 1: criar um projeto do Firebase

Antes de adicionar o Firebase ao seu projeto Unity, é preciso criar um projeto do Firebase para ser conectado ao seu projeto Unity. Visite Noções básicas sobre projetos do Firebase para entender melhor.

Etapa 2: registrar seu app com o Firebase

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

  1. Acesse o Console do Firebase.

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

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

  3. Selecione qual destino de versão do seu projeto Unity você quer registrar ou opte por registrar os dois destinos agora.

  4. Digite os IDs específicos da plataforma do seu projeto do Unity.

    • Para iOS: insira o ID do iOS do seu projeto do Unity no campo ID do pacote do iOS.

    • Para Android: insira o ID do Android do seu projeto do Unity no campo Nome do pacote Android.
      Os termos nome do pacote e ID do aplicativo geralmente são usados de maneira intercambiável.

  5. (Opcional) Digite os apelidos específicos da plataforma do seu projeto do Unity.
    Esses apelidos são identificadores de conveniência internos e só são visíveis para você no Console do Firebase.

  6. Clique em Registrar app.

Etapa 3: adicionar arquivos de configuração do Firebase

  1. Receba seus arquivos de configuração do Firebase específicos da plataforma no fluxo de trabalho de configuração do Console do Firebase.

    • Para iOS: clique em Download GoogleService-Info.plist.

    • Para Android: clique em Download google-services.json.

  2. Abra a janela Projeto do seu projeto do Unity e mova seus arquivos de configuração para a pasta Assets.

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

Etapa 4: adicionar SDKs do Firebase para Unity

É possível adicionar produtos compatíveis do Firebase ao seu projeto do Unity usando o Unity Package Manager ou instalar os SDKs manualmente.

Unity Package Manager

Se você usa o Unity 2018.4 ou mais recente e o .NET 4.x ou o .NET Standard 2.0, é possível instalar componentes do SDK do Firebase com o Unity Package Manager:

  1. Adicione o Game Package Registry do Google ao seu projeto do Unity.

    • Se você nunca importou o SDK do Firebase e o EDM4U (chamado anteriormente de Resolvedor do Play Services) antes, pode adicionar manualmente o seguinte bloco a Packages/manifest.json.

      "scopedRegistries": [
        {
          "name": "Game Package Registry by Google",
          "url": "https://unityregistry-pa.googleapis.com",
          "scopes": [
            "com.google"
          ]
        }
      ]
      

      Observe que alguns outros SDKs, como o SDK do Facebook, podem conter EDM4U em .unitypackage. Verifique se existem pastas Assets/ExternalDependencyManager ou Assets/PlayServicesResolver. Se essas pastas existirem, remova-as antes de instalar qualquer SDK do Firebase por meio do Gerenciador de pacotes do Unity.

    • Se você precisar migrar um SDK existente ou preferir um método mais interativo, importe o Gerenciador de dependências externas para Unity (EDM4U) mais recente.

      O resolvedor do Unity Package Manager solicitará que você adicione o Game Package Registry do Google ao seu projeto. Selecione o registro e clique no botão Adicionar registros selecionados.

      • O EDM4U adiciona o registro a Packages/manifest.json na sua pasta de projeto atual do Unity.

      • Também é possível adicionar esse registro posteriormente usando as opções de menu Assets > External Dependency Manager > Unity Package Manager Resolver > Add Registries ou Window > Google > Game Package Registry > Add To Project.

  2. Migre os pacotes do Firebase e do EDM4U importados por meio do .unitypackage para o Unity Package Manager. Isso pode ser feito por um dos métodos a seguir.

    • Depois que o registro é adicionado pela EDM4U, uma caixa de diálogo "Migrando pacotes" é exibida. Esta caixa de diálogo lista todos os pacotes disponíveis para instalação pelo Unity Package Manager. Recomendamos que você selecione todos eles e clique no botão Aplicar.

    • Você também pode exibir manualmente essa caixa de diálogo mais tarde usando as opções de menu Assets > External Dependency Manager > Unity Package Manager Resolver > Migrate Packages.

    • Também é possível migrar manualmente todos os pacotes importados com .unitypackage seguindo as etapas abaixo.

      1. Remova o SDK do Firebase para Unity e o EDM4U da pasta Assets. O EDM4U fornece uma ferramenta para desinstalar pacotes gerenciados que pode ser acessada usando a opção de menu Assets > External Dependency Manager > Version Handler > Uninstall Managed Packages. Selecione todos os SDKs do Firebase e External Dependency Manager e clique em Uninstall Selected Packages.

        • Se preferir, remova o SDK manualmente da pasta Assets.
      2. Para instalar os componentes do SDK do Unity do Firebase usando o Gerenciador de pacotes do Unity, selecione Window > Package Manager e pesquise Firebase. É possível instalar, remover e remover os componentes do SDK do Firebase para Unity por meio dessa interface.

  3. Agora você pode explorar e instalar componentes do SDK do Firebase para Unity ou pacotes do Google usando o Unity Package Manager selecionando Window > Package Manager. É possível instalar, remover e remover todos esses componentes por meio dessa interface.

Instalação manual

  1. No Console do Firebase, clique em Fazer o download do SDK do Firebase para Unity e descompacte o SDK em algum lugar conveniente.

    • É possível fazer o download do SDK do Firebase para Unity novamente a qualquer momento.

    • O SDK do Firebase para Unity não é específico da plataforma.

  2. No seu projeto aberto do Unity, acesse Assets > Import Package > Custom Package.

  3. No SDK descompactado, selecione os produtos compatíveis do Firebase que você quer usar no seu aplicativo.

    Analytics ativado

    • Adicione o pacote do Firebase para o Google Analytics: FirebaseAnalytics.unitypackage
    • Adicione os pacotes de qualquer outro produto do Firebase que quiser usar no seu aplicativo. Por exemplo, para usar o Firebase Authentication e o Firebase Realtime Database:
      FirebaseAuth.unitypackage e FirebaseDatabase.unitypackage

    Analytics não ativado

    Adicione os pacotes dos produtos do Firebase que você quer usar no seu app. Por exemplo, para usar o Firebase Authentication e o Firebase Realtime Database:
    FirebaseAuth.unitypackage e FirebaseDatabase.unitypackage

  4. Na janela Importar pacote do Unity, clique em Importar.

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

Etapa 5: confirmar os requisitos da versão do Google Play Services

O SDK do Firebase para Unity no Android requer a plataforma Google Play Services, que precisa estar atualizada antes que o SDK possa ser usado.

Adicione o seguinte código no início do seu aplicativo. É possível verificar e, como opção, atualizar o Google Play Services para a versão exigida pelo SDK do Firebase para Unity antes de chamar outros métodos no SDK.

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp,
    // where app is a Firebase.FirebaseApp property of your application class.
       app = Firebase.FirebaseApp.DefaultInstance;

    // Set a flag here to indicate whether Firebase is ready to use by your app.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

Tudo pronto! Seu projeto do Unity está registrado e configurado para usar o Firebase.

Problemas conhecidos

Compatibilidade com .NET ao usar o Unity 2017.x e posterior

O Firebase é compatível com .NET 4.x como uma opção de versão experimental no Unity 2017 e posterior. Os plug-ins do Firebase usam componentes do SDK Parse (em inglês) para fornecer algumas classes do .NET 4.x em versões anteriores do .NET.

Portanto, o SDK do Firebase para Unity versão 5.4.0 e posteriores fornece plug-ins compatíveis com .NET 3.x ou .NET 4.x nos diretórios dotnet3 e dotnet4 do SDK do Firebase para Unity

Se importar um plug-in do Firebase que seja incompatível com a versão .NET ativada no seu projeto, você verá erros de compilação de alguns tipos na biblioteca .NET que são implementados pelo SDK Parse.

Para resolver o erro de compilação, se você estiver usando .NET 3.x:

  1. Remova ou desative as DLLs a seguir para todas as plataformas:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Ative as DLLs a seguir para todas as plataformas:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

Para resolver o erro de compilação, se você estiver usando .NET 4.x:

  1. Remova ou desative as DLLs a seguir para todas as plataformas:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Ative as DLLs a seguir para todas as plataformas:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Se você importar outro plug-in do Firebase:

  • No seu projeto do Unity, navegue para Assets > Play Services Resolver > Version Handler > Update para ativar as DLLs certas para seu projeto.

Compilação IL2CPP do Unity 2017.1 em projetos do .NET 4.x

O Firebase é compatível com .NET 4.x como uma opção de versão experimental no Unity 2017 e posterior. Os plug-ins do Firebase usam componentes do SDK Parse (em inglês) para fornecer algumas classes do .NET 4.x em versões anteriores do .NET.

Portanto, o SDK do Firebase para Unity versão 5.4.0 e posteriores fornece DLLs de encaminhamento de tipo que encaminham tipos do Parse (por exemplo, a implementação do Parse em System.Threading.Tasks.Task) para a biblioteca .NET. Infelizmente, o IL2CPP (transpilador que converte C# para C++) fornecido no Unity 2017.1.x não processa corretamente as DLLs de encaminhamento de tipo, resultando em erros de compilação com a seguinte aparência:

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>

No momento, não há nenhuma solução disponível para erros de compilação do .NET 4.x IL2CPP no Unity 2017.1. Portanto, atualize para o Unity 2017.2 ou posterior para usar o .NET 4.x em projetos compilados com IL2CPP.

Rede do Unity 2017.2

O Realtime Database cria conexões de rede TLS usando a pilha de rede do .NET. A funcionalidade de TLS apresenta falha no Unity 2017.2 ao usar o .NET 4.6, fazendo com que o plug-in do Realtime Database não funcione no editor e no computador.

Não há solução alternativa para esse problema. Você precisa usar uma versão diferente do Unity, por exemplo, 2017.1 ou 2017.3.

O arquivo de configuração do Firebase para Android está ausente no Unity 2020.

Para oferecer compatibilidade com versões do Unity que não conseguem personalizar a versão do Gradle, a ferramenta de edição do Firebase gera Assets/Plugins/Android/Firebase/res/values/google-services.xml como um recurso do Android a ser empacotado em uma versão do Android. que o SDK do Firebase pode usar para inicializar a instância padrão do FirebaseApp.

No Unity 2020, todos os recursos do Android precisam estar em diretórios com um sufixo .androidlib. Se seu projeto estiver usando um SDK do Firebase que gera um diretório Assets/Plugins/Android/Firebase, renomeie-o como Assets/Plugins/Android/Firebase.androidlib. Verifique se ele contém AndroidManifest.xml, project.properties e res/values/google-services.xml.

Conflito de instalação ao usar o Unity Package Manager

Um pacote pode ser instalado a partir de diferentes fontes. Por exemplo, o Gerenciador de dependências externas para Unity (EDM4U, na sigla em inglês), antes chamado de resolvedor do Play Services ou do Unity Jar, pode ser instalado de qualquer uma das seguintes maneiras.

  • Importando o Gerenciador de dependências externas .unitypackage.
  • Importando o SDK do Firebase ou outro SDK que contenha EDM4U na .unitypackage.
  • Instalando o Gerenciador de dependências externas por meio do Unity Package Manager
  • Instalando o SDK do Firebase ou e outro SDK que define EDM4U como dependência por meio do Unity Package Manager.

Quando o EDM4U é instalado por .unitypackage e por meio do Unity Package Manager ao mesmo tempo, há um conflito de instalação, e o Unity pode exibir um erro sobre um conflito de GUID ou conflito de símbolo. O EDM4U não oferece solução para essas situações. Quando isso acontece, esta é uma solução alternativa:

  • Se você tiver migrado o Firebase e o EDM4U para o Unity Package Manager antes e importar outro SDK contendo EDM4U em .unitypackage, para exemplo, o SDK do Google Ads ou do Facebook, basta remover as pastas Assets/ExternalDependencyManager e/ou Assets/PlayServicesResolver.
  • Se você tiver instalado o EDM4U acidentalmente por meio do Unity Package Manager antes de removê-lo da pasta Assets, siga estas etapas para resolver o conflito:
    1. Remova as pastas Assets/ExternalDependencyManager e/ou Assets/PlayServicesResolver.
    2. Desinstale todos os pacotes do Firebase e EDM4U do Unity Package Manager.
    3. Reinstale todos os pacotes necessários do Firebase e do EDM4U a partir do UPM.

Problemas com o Firebase instalado usando o Unity Package Manager no Unity 2018

Quando o Firebase é instalado por meio do Unity Package Manager no Unity 2018, o EDM4U pode não conseguir descobrir algumas das dependências nativas do Firebase para Android e iOS. Isso ocorre porque os arquivos em pacotes instalados como uma dependência não são registrados no AssetDatabase do Unity. O problema mais comum é não poder criar um FirebaseApp no Android devido a um DllNotFoundException.

Por exemplo, quando Realtime Database é instalado por meio do Unity Package Manager, Auth e Firebase App (Core) são instalados automaticamente como dependências. No entanto, o EDM4U não consegue descobrir AuthDependencies.xml e AppDependencies.xml, que contêm as dependências nativas do Android e do iOS, porque não estão registradas no AssetDatabase no Unity 2018. Como resultado, algumas bibliotecas nativas podem estar ausentes na versão para Android ou iOS.

A solução para esse problema é garantir que todos os pacotes do Firebase sejam instalados explicitamente por meio do Unity Package Manager. Por exemplo, se você quiser instalar o Realtime Database, clique em install para Auth e Firebase App (Core) no Unity Package Manager.

Um problema com um único dex ao criar um app Android

Ao criar um app para Android, você pode encontrar uma falha de compilação relacionada a ter um único arquivo dex. A mensagem de erro será semelhante à seguinte, caso seu projeto esteja configurado para usar o sistema de compilação do Gradle.

Cannot fit requested classes in a single dex file.

Os arquivos Dalvik Executable (.dex) são usados para conter um conjunto de definições de classe e os dados associados ao grupo de apps para Android (.apk). Um único arquivo dex está limitado a referências a métodos 65.536. A compilação falhará se o número total de métodos de todas as bibliotecas Android no projeto exceder esse limite.

O Unity introduziu a Minimização em 2017.2, que usa o Proguard (ou outras ferramentas em algumas versões do Unity) para remover o código não utilizado, o que pode reduzir o número total de métodos referenciados em um único arquivo dex. A opção pode ser encontrada em Player Settings > Android > Publishing Settings > Minify. As opções podem ser diferentes em versões diferentes do Unity. Portanto, consulte a documentação oficial do Unity.

Se o número de métodos referenciados ainda exceder o limite, outra opção será ativar multidex. Há várias maneiras de fazer isso no Unity:

  • Se Custom Gradle Template em Player Settings estiver ativado, modifique mainTemplate.gradle.
  • Se você usar o Android Studio para criar o projeto exportado, modifique o arquivo build.gradle do módulo.

Saiba mais detalhes no Guia do usuário do multidex.

Configurar um fluxo de trabalho para computadores (Beta)

Ao criar um jogo, geralmente é mais fácil fazer os testes no editor do Unity e nas plataformas de desktop primeiro e depois implantar e testar em dispositivos móveis durante o desenvolvimento. Para oferecer suporte a esse fluxo de trabalho, fornecemos um subconjunto de SDKs do Firebase para Unity que pode ser executado no Windows, macOS, Linux e no editor do Unity:

  1. Configure um projeto do Unity na plataforma de computador seguindo as mesmas instruções de uma plataforma de dispositivos móveis. Primeiro conclua a etapa Registrar seu aoo com o Firebase acima.

  2. Execute seu projeto do Unity no ambiente de desenvolvimento integrado do Unity ou selecione a opção de criar seu projeto Unity para computadores.

  3. (Opcional) Execute seu projeto do Unity no modo de edição.

    O SDK do Firebase para Unity também pode ser executado no modo de edição do Unity. Isso permite que ele seja usado em plug-ins de editor.

    1. Ao criar um FirebaseApp usado pelo editor, não use a instância padrão.

    2. Em vez disso, forneça um nome exclusivo para a chamada FirebaseApp.Create().

      Isso é importante para evitar um conflito nas opções entre a instância usada pelo ambiente de desenvolvimento integrado do Unity e a instância usada pelo seu projeto.

Produtos do Firebase compatíveis

Saiba mais sobre as bibliotecas do Firebase para Unity na documentação de referência.

O SDK do Firebase para Unity é compatível com os seguintes produtos do Firebase no iOS e no Android:

Produto do Firebase Pacote do Unity
AdMob Distribuído separadamente no plug-in do Unity da AdMob
Análise FirebaseAnalytics.unitypackage
Authentication FirebaseAuth.unitypackage
Cloud Firestore (Alfa) FirebaseFirestore.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Cloud Messaging FirebaseMessaging.unitypackage
(recomendado) FirebaseAnalytics.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(recomendado) FirebaseAnalytics.unitypackage
Dynamic Links FirebaseDynamicLinks.unitypackage
(recomendado) FirebaseAnalytics.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Configuração remota FirebaseRemoteConfig.unitypackage
(recomendado) FirebaseAnalytics.unitypackage

Produtos do Firebase compatíveis (computadores)

O SDK do Firebase para Unity inclui suporte a fluxo de trabalho em computadores para um subconjunto de produtos. Isso permite que determinadas partes do Firebase sejam usadas no editor do Unity e em versões independentes para computadores no Windows, macOS e Linux.

Produto do Firebase (computador) Pacote do Unity
Authentication FirebaseAuth.unitypackage
Cloud Functions FirebaseFunctions.unitypackage
Cloud Firestore (Alfa) FirebaseFirestore.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Configuração remota FirebaseRemoteConfig.unitypackage

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.

Próximas etapas