Adicionar o Firebase ao seu projeto do Unityplat_iosplat_androidplat_unity

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

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

Etapa 1: configurar seu ambiente

  • Instale o Unity 5.3 ou posterior.

  • (somente iOS) Garanta que você tem acesso ao seguinte:

    • Xcode 9.4.1 ou posterior
    • CocoaPods 1.4.0 ou posterior
  • Garanta que seu projeto Unity segmente o nível de sistema operacional adequado:

    • Para iOS: segmente o iOS 8 ou posterior
    • Para Android: segmente o nível 16 da API (Jelly Bean) ou versões posteriores
  • Configure um dispositivo ou emulador para executar seu projeto do Unity.

    • Para iOS: para o Firebase Cloud Messaging, você precisará de:

      • Um dispositivo físico com iOS
      • Certificado de APNs com notificações push ativadas
    • Para Android: os emuladores precisam usar uma imagem de emulador no Google Play.

  • Faça login no Firebase usando sua Conta do Google.

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

Etapa 2: 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 3: registrar seu app com o Firebase

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

  1. No centro da página de visão geral do projeto do Console do Firebase, 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.

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

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

    1. Abra seu projeto do Unity no seu ambiente de desenvolvimento integrado do Unity.

    2. Navegue até Build Settings > iOS or Android > Player Settings > Other Settings.

      O ID do projeto do Unity é o valor de Bundle Identifier. ID de exemplo: com.yourcompany.unity-project-name

    3. Digite cada ID específico da plataforma no campo apropriado:

      • Para iOS: insira o ID do iOS do seu projeto do Unity no campo ID do pacote do iOS (em inglês).

      • Para Android: insira o ID do Android do seu projeto do Unity no campo Nome do pacote Android (em inglês).

        • Os termos nome do pacote e ID do aplicativo geralmente são usados de maneira intercambiável.
  4. (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.

  5. Clique em Register app.

Etapa 4: 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.

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

    • Antes de mover seu arquivo de configuração, verifique se não há caracteres adicionais anexados a ele, como (2).
    • É possível colocar os arquivos de configuração do Firebase em qualquer lugar na pasta Assets.
  3. De volta ao fluxo de trabalho de configuração no Console do Firebase, clique em Avançar.

Etapa 5: adicionar um SDK do Firebase para Unity

As etapas nesta seção são um exemplo de como adicionar qualquer produto do Firebase compatível ao seu projeto do Unity. Veremos a seguir como adicionar o Google Analytics para Firebase.

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

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

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

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

  3. No SDK descompactado, selecione a opção para importar o SDK do Analytics (FirebaseAnalytics.unitypackage).

    Também é possível importar qualquer outro produto do Firebase compatível.

  4. Na janela Import Unity Package, clique em Import.

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

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

O SDK para Unity do Firebase 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 para Unity do Firebase 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 para Unity do Firebase 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 para Unity do Firebase.

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.

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 para computadores 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, OS X, 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 projeto do Unity 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 para Unity do Firebase 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 Functions FirebaseFunctions.unitypackage
Cloud Messaging FirebaseMessaging.unitypackage
Cloud Storage FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
Dynamic Links FirebaseDynamicLinks.unitypackage
Realtime Database FirebaseDatabase.unitypackage
Configuração remota FirebaseRemoteConfig.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, OS X e Linux.

Produto do Firebase (computador) Pacote do Unity
Authentication FirebaseAuth.unitypackage
Cloud Functions FirebaseFunctions.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, OS X e Linux. Elas eliminam a necessidade de compilar códigos de modo condicional na segmentação para computadores.

Próximas etapas