Primeiros passos com o Firebase Realtime Database para Unity

O Firebase Realtime Database armazena e sincroniza dados com o nosso banco de dados na nuvem NoSQL. Os dados são sincronizados em todos os clientes em tempo real e permanecem disponíveis mesmo quando seu app fica off-line.

Antes de começar

Para usar o Firebase Realtime Database, você precisa criar um projeto do Firebase e adicionar os pacotes do SDK para Unity do Firebase ao projeto do Unity.

Configuração:

Pré-requisitos

Android

  • Unity 5.0 ou posterior
  • Android NDK versão 10d ou posterior

iOS

  • Unity 5.0 ou posterior
  • Xcode 8.0 ou posterior

Se você ainda não tem um projeto do Unity, faça o download de um dos nossos exemplos de guia de início rápido e teste um recurso específico do Firebase. Nesse caso, anote o identificador do pacote nas configurações do projeto. Ele será necessário na próxima etapa.

Configurar seu app no Console do Firebase

Para adicionar o Firebase ao seu app, você precisa de um projeto e de um arquivo de configuração do Firebase.

Para criar um projeto do Firebase:

  1. Vá para o Console do Firebase.

  2. Clique em Adicionar projeto e selecione ou insira um Nome do projeto.

    • Se você tiver um projeto do Google associado ao seu aplicativo, selecione o projeto no menu suspenso Nome do projeto.
    • Se você não tiver um projeto do Google existente, insira um novo Nome do projeto.
  3. (Opcional) Edite o código do projeto.

    O Firebase atribui automaticamente um código exclusivo ao seu projeto do Firebase. Ele é exibido em serviços do Firebase visíveis publicamente, por exemplo:

    • URL padrão do banco de dados: your-project-id.firebaseio.com
    • subdomínio de hospedagem padrão: your-project-id.firebaseapp.com
  4. Siga as demais etapas de configuração e clique em Criar projeto ou Adicionar Firebase, se estiver usando um projeto existente do Google.

O Firebase provisiona recursos automaticamente para seu projeto da plataforma. O processo normalmente leva alguns minutos. Quando o processo for concluído, você será direcionado para a página de visão geral do seu projeto no Console do Firebase.

Android

  1. Clique em Adicionar o Firebase ao app para Android e siga as etapas de configuração. Se você estiver importando um projeto do Google, isso pode ocorrer automaticamente. Basta fazer o download do arquivo de configuração.
  2. Quando solicitado, digite o nome do pacote do seu app. É importante inserir o nome do pacote usado pelo seu aplicativo, mas essa configuração só pode ser feita quando você adiciona um app ao seu projeto do Firebase.
  3. Durante o processo, você fará o download de um arquivo google-services.json. É possível fazer o download dele novamente a qualquer momento.
  4. Depois de adicionar o código de inicialização, execute seu aplicativo para enviar ao Console do Firebase a confirmação de que você instalou o Firebase com sucesso.

iOS

  1. Clique em Adicionar o Firebase ao app para iOS e siga as etapas de configuração. Se você estiver importando um projeto do Google, isso pode ocorrer automaticamente. Basta fazer o download do arquivo de configuração.
  2. Quando solicitado, digite o código do pacote do app. É importante inserir essa informação ao adicionar um app ao projeto do Firebase.
  3. Durante o processo, você fará o download de um arquivo GoogleService-Info.plist. Você pode fazer o download desse arquivo novamente a qualquer momento.
  4. Depois de adicionar o código de inicialização, execute seu aplicativo para enviar ao Console do Firebase a confirmação de que você instalou o Firebase com sucesso.
  5. Arraste o arquivo GoogleService-Info.plist, transferido por download, do Console do Firebase para qualquer pasta no projeto do Unity.

Adicionar o SDK para Unity do Firebase ao app

  1. Faça o download do SDK para Unity do Firebase.
  2. Selecione o item de menu Recursos > Importar pacote > Pacote personalizado.
  3. Importe FirebaseDatabase.unitypackage do diretório que corresponde à versão do Unity que você usa:
    • Unity 5.x e versões anteriores usam o .NET Framework 3.x. Portanto, é necessário importar o pacote dotnet3/FirebaseDatabase.unitypackage .
    • O Unity 2017.x e versões mais recentes permitem o uso do .NET Framework 4.x. Caso seu projeto esteja configurado para usar o .NET 4.x, importe o pacote dotnet4/FirebaseDatabase.unitypackage .
  4. Quando a janela Importar pacote do Unity for exibida, clique no botão Importar.

Inicializar o SDK

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. O código a seguir precisa ser adicionado no início do seu aplicativo para 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, i.e.
    //   app = Firebase.FirebaseApp.DefaultInstance;
    // where app is a Firebase.FirebaseApp property of your application class.

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

Criar o aplicativo

Android

  1. Selecione a opção de menu Arquivo > Criar configurações.
  2. Selecione Android na lista Plataforma.
  3. Clique em Alterar plataforma para selecionar Android como a plataforma de destino.
  4. No canto inferior direito da barra de status do Unity, espere o ícone de carregamento parar.
  5. Clique em Criar e executar.

iOS

  1. Selecione a opção de menu Arquivo > Criar configurações.
  2. Selecione iOS na lista Plataforma.
  3. Clique em Alterar plataforma para selecionar iOS como a plataforma de destino.
  4. No canto inferior direito da barra de status do Unity, espere o ícone de carregamento parar.
  5. Clique em Criar e executar.

Como configurar o acesso público

O Realtime Database oferece uma linguagem de regras declarativas que permite que você defina como os dados devem ser estruturados, como devem ser indexados e quando podem ser lidos e gravados. Por padrão, o acesso de leitura e gravação ao seu banco de dados é restrito, por isso apenas usuários autenticados podem ler ou gravar dados. Para iniciar sem configurar o Firebase Authentication, defina as regras para acesso público. Isso faz com que seu banco de dados esteja disponível para qualquer pessoa, mesmo para quem não utiliza seu app. Por isso, restrinja seu banco de dados novamente quando configurar a autenticação.

Configurar o SDK para o Unity Editor.

Ao testar sua cena no Unity Editor, você pode usar o Realtime Database. É necessário configurar o SDK com o URL adequado do banco de dados. Chame o SetEditorDatabaseUrl com o URL do seu banco de dados.

using Firebase;
using Firebase.Unity.Editor;

public class MyScript: MonoBehaviour {
  void Start() {
    // Set this before calling into the realtime database.
    FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://YOUR-FIREBASE-APP.firebaseio.com/");
  }
}

Se você optou por usar o acesso público para suas regras e definiu o URL do banco de dados, avance para as seções sobre como salvar e recuperar dados.

Opcional. Configuração do Editor para acesso restrito.

Se você escolher utilizar regras que não permitem o acesso público, terá de configurar o SDK para usar uma conta de serviço para executar no Unity Editor. Isso também permite simular usuários finais durante o teste. Para fazer isso, primeiro crie um novo arquivo p12 acessando

https://console.cloud.google.com/iam-admin/serviceaccounts/project?project=YOUR-FIREBASE-APP

Registre o e-mail e a senha gerados da conta de serviço.

Coloque o arquivo p12 em "Recursos Padrão do Editor" dentro do seu projeto do Unity. Em seguida, adicione o código a seguir para inciar o uso da conta de serviço.

using Firebase;
using Firebase.Unity.Editor;

public class MyScript: MonoBehaviour {
  void Start() {
    // Set these values before calling into the realtime database.
    FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://YOUR-FIREBASE-APP.firebaseio.com/");
    FirebaseApp.DefaultInstance.SetEditorP12FileName("YOUR-FIREBASE-APP-P12.p12");
    FirebaseApp.DefaultInstance.SetEditorServiceAccountEmail("SERVICE-ACCOUNT-ID@YOUR-FIREBASE-APP.iam.gserviceaccount.com");
    FirebaseApp.DefaultInstance.SetEditorP12Password("notasecret");
  }
}

Próximas etapas

Problemas conhecidos

  • O Realtime Database não funciona em macOS com Unity 2017.2 quando estiver usando a biblioteca experimental .NET 4.6 devido a uma regressão inserida na versão 2017.2.0, que corrompeu o SslStream nessa configuração. A regressão foi corrigida na versão 2017.3.0, que é compatível com o Realtime Database.

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.