Explorar o Firebase remote config
Conteudo
Introdução
O Firebase é uma plataforma de desenvolvimento de aplicativos móveis e da web desenvolvida pela Firebase, Inc. em 2011, depois adquirida pelo Google em 2014. Em março de 2020, a plataforma Firebase tinha 19 produtos, que são usados por mais de 1,5 milhão de aplicativos. O Firebase se tornou muito necessário para os desenvolvedores Android atualmente.
O Firebase do Google tem muitos recursos que podem ajudar na criação de melhores aplicativos – monitorando e melhorando a qualidade do aplicativo, entre outras coisas.
Ele tem muitos recursos sob o mesmo teto, como configuração remota, Crashlytics, análises, mensagens em nuvem, etc.
Cada elemento do Firebase é muito fácil e importante de aprender. Para pequenos desenvolvedores que desejam hospedar seu site para mostrar seu portfólio ou qualquer outra coisa, o Firebase Hosting é um recurso com o qual você pode hospedar um site facilmente em poucos minutos após seguir algumas etapas, e é gratuito inicialmente.
Agora vamos mergulhar no conceito de configuração remota.
Por que precisamos disso?
O Firebase Remote Config é um serviço de nuvem com o qual podemos mudar o comportamento e a aparência de nosso aplicativo sem publicar uma atualização do aplicativo, sem nenhum custo e para um número ilimitado de usuários ativos diariamente. E também foi recomendado para o uso de verificação de atualizações de aplicativos.
Ao usar o Configuração remota, criamos valores padrão dentro do aplicativo que controlam o comportamento e a aparência de nosso aplicativo. Posteriormente, podemos usar o console do Firebase para atualizar os valores e usar a API REST do Remote config para substituir os valores padrão no aplicativo para todos os usuários do nosso aplicativo ou para segmentos da nossa base de usuários.
Em termos simples, no lado do servidor, podemos manter pares de valores-chave de valores necessários e, no lado do cliente, como lidamos com APIs Rest, podemos buscar esses valores e usá-los para atualizações de aplicativos ou para alterar a aparência do aplicativo ou comportamento.
Nosso aplicativo controla quando as atualizações são aplicadas e pode frequentemente verificar se há atualizações e aplicá-las com um impacto insignificante no desempenho.
Como funciona?
O Remote config inclui uma biblioteca de cliente que lida com tarefas importantes, como buscar valores de parâmetro e armazená-los em cache, enquanto ainda nos dá controle sobre quando novos valores são ativados ou buscados para que afetem a experiência do usuário do nosso aplicativo. Isso nos permite proteger nossa experiência com o aplicativo, controlando o momento de quaisquer alterações.
Os métodos get
da biblioteca cliente do Configuração remota fornecem um único ponto de acesso para valores de parâmetro. Nosso aplicativo obtém valores do lado do servidor usando a mesma lógica que usa para obter valores padrão dentro do aplicativo, para que possamos adicionar os recursos do Configuração remota ao nosso aplicativo sem escrever muito código.
Para substituir os valores padrão no aplicativo, você usa o console do Firebase ou as APIs de back-end do Configuração remota para criar parâmetros com os mesmos nomes dos parâmetros usados no seu aplicativo.
Para cada parâmetro, você pode definir um valor padrão do lado do servidor para substituir o valor padrão dentro do aplicativo, e você também pode criar valores condicionais para substituir o valor padrão dentro do aplicativo para instâncias do aplicativo que atendam a certas condições. A imagem abaixo mostra como os valores dos parâmetros são atribuídos no back end do Configuração remota e em nosso aplicativo:
Como usá-lo
Existem quatro etapas fáceis que precisam ser seguidas:
- Adicionar dependências necessárias
- Defina os valores de parâmetro padrão dentro do aplicativo que definem nossos requisitos
- Adicionar e atualizar valores de parâmetros condicionais e padrão do lado do servidor
- Adicione lógica para buscar, ativar e obter valores de parâmetro
Vamos entender isso melhor com um caso de uso, como alterar a imagem da tela de boas-vindas. Suponha que haja um aplicativo que exibe uma imagem em uma tela inicial e, alguns dias depois, eu penso em mudar essa imagem. Aqui, não vou precisar publicar a atualização do aplicativo. Vamos ver como podemos fazer isso usando o Configuração remota.
Implementação
Passo 1
Adicione o Firebase ao seu projeto Android, caso ainda não tenha feito isso.
Em seguida, vamos adicionar a dependência do Configuração remota no build.gradle
do nível do aplicativo (app/build.gradle
).
implementation 'com.google.firebase:firebase-config-ktx:19.1.4' implementation 'com.google.firebase:firebase-analytics-ktx:17.4.3'
Para o Configuração remota, o Google Analytics é necessário para a segmentação condicional de instâncias do aplicativo para propriedades do usuário, públicos e Previsões do Firebase. Certifique-se de habilitar o Google Analytics em seu projeto.
Passo 2
Defina os valores dos parâmetros padrão dentro do aplicativo. Podemos definir valores de parâmetro padrão dentro do aplicativo no objeto do Remote config para que nosso aplicativo se comporte como pretendido antes de se conectar ao back-end do Remote config e para que os valores padrão estejam disponíveis se nenhum for definido no back-end.
- Defina um conjunto de nomes de parâmetro e valores de parâmetro padrão usando um objeto de
Map
ou um arquivo de recurso XML armazenado na pastares/xml
do seu aplicativo. O aplicativo de amostra de início rápido do Configuração remota usa um arquivo XML para definir nomes e valores de parâmetro padrão. - Adicione esses valores ao objeto
remoteConfig
usandosetDefaultsAsync(int)
, conforme mostrado:
val remoteConfig = Firebase.remoteConfig remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)
Em nosso caso, clique com o botão direito na pasta res
e adicione a pasta xml
se ela não existir. Em seguida, adicione um arquivo XML com o nome de atributo welcome_image
Aqui, dependendo dos requisitos, podemos adicionar qualquer número de parâmetros.
Passo 3
Defina os valores dos parâmetros no back end do Configuração remota. Agora é hora de adicionar e atualizar nossos valores. No console do Firebase, abra seu projeto e selecione Configuração remota na seção Expandir no menu à esquerda.
Temos que preencher a “Parameter key” e o “Default value”. Por fim, não se esqueça de clicar em “Publish changes” para que nossas alterações sejam ativadas. Adicione o parâmetro com a mesma chave usada em welcome_image
no aplicativo.
Em seguida, clique em “Add parameter.”. Você verá a tela abaixo. Clique no botão “Publish changes” no canto superior direito para fazer suas alterações entrarem em vigor.
Depois de adicionado com sucesso, terá a seguinte aparência:
Agora terminamos com o lado do servidor.
Bônus
Podemos adicionar parâmetros dependentes da plataforma, o formato dos parâmetros, etc. Para realizar uma distribuição percentual em um parâmetro do Configuração remota existente, adicione uma nova condição ao parâmetro que contém a condição “User in random percentile” com o valor% definido como 10%:
Confira mais opções sobre como adicionar parâmetros diferentes para casos de uso diferentes em “O que posso fazer com o Configuração remota?”
Passo 4:
Do lado do aplicativo, busque os valores mais recentes do Configuração remota e atualize a aparência do aplicativo. Isso podemos fazer usando uma classe singleton ou na classe de aplicativo
- Para buscar valores de parâmetro no back end do Configuração remota, chame o método
fetch()
. Todos os valores definidos no back-end são buscados e armazenados no objeto do Configuração remota. - Para disponibilizar valores de parâmetros buscados para seu aplicativo, chame o método
activate()
. - Para os casos em que você deseja buscar e ativar valores em uma chamada, pode usar uma solicitação
fetchAndActivate()
para buscar valores no back-end do Configuração remota e disponibilizá-los para o aplicativo:
val remoteConfig = Firebase.remoteConfig remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults) remoteConfig.fetchAndActivate() .addOnCompleteListener(this) { task -> if (task.isSuccessful) { val updated = task.result Log.d(TAG, "Parâmetros de configuração atualizados: $updated") Toast.makeText(this, "Buscar e ativar com sucesso", Toast.LENGTH_SHORT).show() } else { Toast.makeText(this, "A busca falhou", Toast.LENGTH_SHORT).show() } displayWelcomeMessage() }
No futuro, se quisermos alterar a imagem na tela de boas-vindas, precisamos apenas alterar o URL no Console do Firebase. Você também pode fazer muito mais coisas, então verifique a lista completa de coisas no site do Firebase.
Referências
“Introdução ao Configuração remota no Android” via Firecasts
“Comece a usar o Firebase Remote Config no Android” por meio dos documentos do Firebase