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
Defina valores de parâmetros padrão no objeto da Configuração remota para serem usados se nenhum outro valor tiver sido recuperado a partir do back-end. Isso permite que seu app se comporte da maneira pretendida antes de se conectar ao back-end da Configuração remota.
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. (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
- Abra seu projeto no Console do Firebase.
- Selecione Configuração remota no menu para ver o painel.
- 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: