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

Adicionar o Firebase ao seu 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 turbinar 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 o Unity 2017.4 ou posterior. As versões anteriores também podem ser compatíveis, mas não serão ativamente compatíveis.As versões anteriores também podem ser compatíveis, mas não terão um amplo suporte.

  • Instale os seguintes itens (somente para iOS):

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

    • Para iOS: voltado a iOS 10 ou posterior
    • Para Android: voltado ao 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

  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.

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
Analytics FirebaseAnalytics.unitypackage
Authentication FirebaseAuth.unitypackage
Cloud Firestore (Beta) 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 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