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

Solução de problemas e perguntas frequentes para Unity e Firebase

Esta página oferece dicas e solução de problemas para problemas específicos do Unity que você pode encontrar ao usar o Firebase.

Tem outros desafios ou não vê seu problema descrito abaixo? Certifique-se de verificar o principal Firebase FAQ para FAQ mais pan-Firebase ou específico do produto.

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

O Firebase oferece suporte ao .NET 4.x como uma opção de compilação experimental no Unity 2017 e posterior. Plugins Firebase usar componentes da Parse SDK para fornecer algumas classes .NET 4.x em versões anteriores do .NET.

Portanto, o Firebase Unidade SDK versão 5.4.0 e posterior fornecem plugins que são compatíveis com qualquer .NET 3.x ou .NET 4.x em dotnet3 e dotnet4 diretórios do Firebase Unidade SDK.

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

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

  1. Remova ou desative as seguintes DLLs para todas as plataformas:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Habilite as seguintes DLLs 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 seguintes DLLs para todas as plataformas:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Habilite as seguintes DLLs para todas as plataformas:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Se você importar outro plug-in do Firebase:

  • Em seu projeto Unidade, navegar para o Ativo> Play Services Resolver> Versão Handler> Atualização para permitir que as DLLs corretas para o seu projeto.

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

O Firebase oferece suporte ao .NET 4.x como uma opção de compilação experimental no Unity 2017 e posterior. Plugins Firebase usar componentes da Parse SDK para fornecer algumas classes .NET 4.x em versões anteriores do .NET.

Portanto, o Firebase Unidade SDK versão 5.4.0 e posterior fornece DLLs de encaminhamento do tipo que encaminhar tipos parse (por exemplo, implementação Parse de System.Threading.Tasks.Task ) para o .NET framework. Infelizmente, o IL2CPP (um transpiler que converte C # em C ++) enviado no Unity 2017.1.x não processa corretamente DLLs de encaminhamento de tipo, o que resulta em erros de compilação semelhantes aos seguintes:

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

No momento, não há solução alternativa disponível para erros de compilação de .NET 4.x IL2CPP no Unity 2017.1, então você deve atualizar para Unity 2017.2 ou posterior para usar .NET 4.x em projetos compilados com IL2CPP.

Rede Unity 2017.2

O Firebase Realtime Database cria conexões de rede TLS usando a pilha de rede .NET. A funcionalidade TLS é interrompida no Unity 2017.2 ao usar o .NET 4.6, fazendo com que o plug-in do Realtime Database falhe nos editores e na área de trabalho.

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

Arquivo de configuração do Firebase Android ausente no Unity 2020

A fim de versões de suporte de unidade que não tem a capacidade de personalizar a construção Gradle, a ferramenta editor Firebase gera Assets/Plugins/Android/Firebase/res/values/google-services.xml como um recurso Android para ser empacotado em um Compilação do Android, para que o SDK do Firebase possa usá-lo para inicializar a instância FirebaseApp padrão.

Na Unidade de 2020, todos os recursos do Android deve estar em diretórios com um .androidlib sufixo. Se seu projeto está usando um Firebase SDK que gera uma Assets/Plugins/Android/Firebase diretório, renomeá-lo para Assets/Plugins/Android/Firebase.androidlib . Certifique-se que contém AndroidManifest.xml , project.properties e res/values/google-services.xml .

Um problema com o único dex durante a construção de um aplicativo Android

Ao construir um aplicativo Android, você pode encontrar uma falha de construção relacionada a ter um único arquivo dex. A mensagem de erro é semelhante à seguinte, se o seu projeto estiver configurado para usar o sistema de compilação Gradle.

Cannot fit requested classes in a single dex file.

Dalvik Executable ( .dex arquivos) são utilizados para armazenar um conjunto de definições de classe e seus dados adjuntos associados para aplicações Android ( .apk ). Um único arquivo dex é limitado a referência a 65.536 métodos. A compilação falhará se o número total de métodos de todas as bibliotecas Android em seu projeto exceder esse limite.

Unidade introduzido Minificação em 2017,2, que utiliza Proguard (ou outras ferramentas em algumas versões de unidade) para retirar o código não utilizada, o que pode reduzir o número total de processos referenciados em um único arquivo dex. A opção pode ser encontrada nas Configurações do Jogador> Android> Publishing Configurações> Minify. As opções podem ser diferentes nas diferentes versões do Unity, portanto, consulte a documentação oficial do Unity.

Se o número de métodos referenciados ainda excede o limite, uma outra opção é para permitir multidex . Existem várias maneiras de conseguir isso no Unity:

  • Se Custom Gradle Template sob Player Settings está habilitado, modificar mainTemplate.gradle .
  • Se você usa o Android Studio para criar o projeto exportado, modificar-nível de módulo build.gradle arquivo.

Mais detalhes podem ser encontrados no guia do usuário multidex .