Primeiros passos com a Configuração remota do Firebase

Use a Configuração remota do Firebase para definir parâmetros no seu app e atualizar os valores na nuvem, permitindo modificar a aparência e o comportamento do app sem a necessidade de distribuir uma atualização.

A biblioteca da Configuração remota é usada para armazenar valores de parâmetros padrão no app, buscar valores atualizados de parâmetros do back-end e controlar quando os valores da busca são disponibilizados ao app. Para saber mais, consulte Estratégias de carregamento da Configuração remota.

Veja neste guia os primeiros passos e códigos de amostra, que estão disponíveis para clonagem ou download no repositório do GitHub firebase/quickstart-unit.

Adicionar a Configuração remota ao seu app

Antes de usar a Configuração remota, você precisa realizar as seguintes ações:

  • 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, FirebaseRemoteConfig.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.

Definir valores de parâmetros padrão no app

É possível definir os valores de parâmetros padrão no app com o objeto da Configuração remota. Assim, o app se comporta de maneira previsível antes de se conectar ao back-end da Configuração remota e os valores padrão estarão disponíveis, caso nenhum tenha sido definido no back-end.

Para fazer isso, crie um dicionário de strings e preencha-o com pares de chave-valor que representam os padrões que você quer adicionar. Depois de configurar os valores de parâmetros de back-end do Configuração remota, é possível fazer o download de um arquivo que contenha esses pares de chave-valor para criar seu dicionário de strings. Para mais informações, consulte Fazer o download dos padrões do modelo do Configuração remota.

(Propriedades sem string serão convertidas no tipo de propriedade quando SetDefaultsAsync() for chamado).

System.Collections.Generic.Dictionary<string, object> defaults =
  new System.Collections.Generic.Dictionary<string, object>();

// These are the values that are used if we haven't fetched data from the
// server
// yet, or if we ask for values that the server doesn't have:
defaults.Add("config_test_string", "default local string");
defaults.Add("config_test_int", 1);
defaults.Add("config_test_float", 1.0);
defaults.Add("config_test_bool", false);

Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.SetDefaultsAsync(defaults)
  .ContinueWithOnMainThread(task => {

Receber valores de parâmetros para uso no app

É possível receber valores de parâmetro do objeto da Configuração remota. Se você definir valores no back-end da Configuração remota, buscá-los e, depois, ativá-los, eles estarão disponíveis para seu app. Caso contrário, você receberá os valores de parâmetro configurados no app usando SetDefaultsAsync().

Para receber esses valores, use GetValue(), fornecendo a chave de parâmetro como argumento. Isso retorna um ConfigValue, que tem propriedades para converter o valor em vários tipos de base.

Conectar o app ao Console do Firebase

No Console do Firebase, adicione seu app ao projeto do Firebase.

Definir os valores de parâmetro

  1. Abra seu projeto no Console do Firebase.
  2. Selecione Configuração remota no menu para ver o painel.
  3. Defina os parâmetros com os mesmos nomes dos definidos no seu app. Para cada um, é possível definir um valor padrão (que, por fim, substituirá o valor padrão no app) e valores condicionais. Para saber mais, consulte Parâmetros e condições do recurso Configuração remota.

Buscar e ativar valores (conforme necessário)

Para recuperar os valores de parâmetros usando o back-end da Configuração remota, chame o método FetchAsync(). Todos os valores definidos no back-end são obtidos e armazenados em cache no objeto Configuração remota.

// Start a fetch request.
// FetchAsync only fetches new data if the current data is older than the provided
// timespan.  Otherwise it assumes the data is "recent enough", and does nothing.
// By default the timespan is 12 hours, and for production apps, this is a good
// number. For this example though, it's set to a timespan of zero, so that
// changes in the console will always show up immediately.
public Task FetchDataAsync() {
  DebugLog("Fetching data...");
  System.Threading.Tasks.Task fetchTask =
  Firebase.RemoteConfig.FirebaseRemoteConfig.DefaultInstance.FetchAsync(
      TimeSpan.Zero);
  return fetchTask.ContinueWithOnMainThread(FetchComplete);
}

Os valores recuperados por meio de FetchAsync() são armazenados em cache localmente no final da operação, mas não são disponibilizados até que ActivateFetched() seja chamado. Como FetchAsync() é executado de modo assíncrono, os novos valores não são aplicados durante o cálculo ou em ocasiões que podem resultar em problemas ou comportamentos estranhos.

(Opcional) Ativar modo do desenvolvedor

Para ativar o modo de desenvolvedor, que pode ser usado para desativar o controle de fluxo durante o desenvolvimento, use a propriedade FirebaseRemoteConfig.Setting, configurando um novo ConfigSettings com IsDeveloperMode definido como verdadeiro.

Próximas etapas

Se ainda não tiver feito isso, veja os casos de uso do recurso Configuração remota e analise alguns dos principais conceitos e documentação de estratégias avançadas, incluindo: