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.
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.
- Faça login no Firebase usando sua Conta do Google.
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.
Acesse o Console do Firebase.
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.
Selecione qual destino de versão do seu projeto Unity você quer registrar ou opte por registrar os dois destinos agora.
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.
(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.Clique em Registrar app.
Etapa 3: adicionar arquivos de configuração do Firebase
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.
Abra a janela Projeto do seu projeto do Unity e mova seus arquivos de configuração para a pasta
Assets
.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
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.
No seu projeto aberto do Unity, acesse Assets > Import Package > Custom Package.
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
eFirebaseDatabase.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
eFirebaseDatabase.unitypackage
- Adicione o pacote do Firebase para o Google Analytics:
Na janela Importar pacote do Unity, clique em Importar.
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:
- Remova ou desative as DLLs a seguir para todas as plataformas:
Parse/Plugins/dotNet45/Unity.Compat.dll
Parse/Plugins/dotNet45/Unity.Tasks.dll
- 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:
- Remova ou desative as DLLs a seguir para todas as plataformas:
Parse/Plugins/Unity.Compat.dll
Parse/Plugins/Unity.Tasks.dll
- 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
emPlayer Settings
estiver ativado, modifiquemainTemplate.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:
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.
Execute seu projeto do Unity no ambiente de desenvolvimento integrado do Unity ou selecione a opção de criar seu projeto Unity para computadores.
(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.
Ao criar um
FirebaseApp
usado pelo editor, não use a instância padrão.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
Conheça os aplicativos de amostra do Firebase.
Prepare-se para lançar seu aplicativo:
- Configure alertas de orçamento para o projeto no Console do Google Cloud.
- Monitore o painel Uso e faturamento no Console do Firebase para ter uma visão geral do uso do projeto em vários serviços do Firebase.
- Consulte a lista de verificação de lançamento do Firebase.