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

Antes de usar o Realtime Database, você precisa:

  • registrar seu projeto do Unity e configurá-lo para usar o Firebase.

    • Se o projeto do Unity já usa o Firebase, ele já está registrado e configurado para essa plataforma.

    • Se você não tiver um projeto do Unity, faça o download de um app de amostra.

  • Adicione o SDK do Firebase para Unity (especificamente, FirebaseDatabase.unitypackage) ao seu projeto do Unity.

Adicionar o Firebase ao seu projeto do Unity envolve tarefas no Console do Firebase e no projeto aberto do Unity. Por exemplo, fazer o download dos arquivos de configuração do Firebase no console e movê-los para o projeto do Unity.

Criar um banco de dados

  1. Crie um projeto do Firebase, caso ainda não tenha feito isso: no Console do Firebase, clique em Adicionar projeto e siga as instruções exibidas na tela para criar um projeto ou adicionar serviços do Firebase a um projeto atual do GCP.

  2. Navegue até a seção Realtime Database do Console do Firebase. Aparecerá uma solicitação para selecionar um projeto atual do Firebase. Siga o fluxo de trabalho de criação do banco de dados.

  3. Selecione um modo inicial para suas regras de segurança do Firebase:

    Modo de teste

    Ideal para dar os primeiros passos com as bibliotecas de cliente de dispositivos móveis e Web. No entanto, esse modo permite que qualquer pessoa leia e modifique os dados. Após o teste, leia a seção Noções básicas das regras do Firebase Realtime Database.

    Selecione o modo de teste para começar a usar o SDK para Android, iOS ou da Web.

    Modo bloqueado

    Nega todas as leituras e gravações de clientes de dispositivos móveis e Web. Seus servidores de aplicativos autenticados ainda podem acessar seu banco de dados.

  4. Clique em Concluído.

Ao ativar o Realtime Database, também é ativada a API no Cloud API Manager.

Como configurar o acesso público

O Realtime Database oferece uma linguagem de regras declarativas para que você defina como os dados devem ser estruturados e indexados, e quando podem ser lidos e gravados.

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");
  }
}

A seguir