Explorar o Firebase remote config

Tempo de leitura: 6 minutes

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:

Imagem Original Firebase

 

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.

  1. 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 pasta res/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.
  2. Adicione esses valores ao objeto remoteConfig usando setDefaultsAsync(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

  1. 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.
  2. Para disponibilizar valores de parâmetros buscados para seu aplicativo, chame o método activate().
  3. 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