Estratégias de carregamento do Firebase Remote Config

O Firebase Remote Config oferece muita flexibilidade sobre como e quando buscar novos valores do servidor e ativá-los no seu aplicativo, permitindo garantir uma experiência de usuário final de qualidade controlando o tempo de quaisquer alterações visíveis na configuração. Você pode buscar novos valores na inicialização do aplicativo usando fetchAndActivate() e usar a Configuração remota em tempo real como um método complementar para buscar automaticamente os valores de parâmetro mais recentes após a publicação de uma nova versão da Configuração remota.

Este guia analisa algumas estratégias de carregamento e discute as principais considerações para escolher a melhor opção para seu aplicativo.

Estratégia 1: buscar e ativar no carregamento

Nessa estratégia, seu aplicativo chamaria fetchAndActivate() quando seu aplicativo for inicializado pela primeira vez para buscar novos valores do Configuração remota e ativá-los assim que terminarem de carregar. Essa abordagem simples funciona bem para alterações de configuração que não causam alterações visuais drásticas na sua IU. Deve ser evitado em qualquer situação em que sua IU possa mudar visivelmente enquanto os usuários estão usando-a.

Depois que seu aplicativo chamar fetchAndActivate() , ele poderá começar a escutar atualizações de valores de parâmetros em tempo real chamando addOnConfigUpdateListener . Este método começa a escutar quaisquer atualizações do lado do servidor nos valores dos parâmetros, busca-as automaticamente e depois chama o ouvinte. Uma estratégia simples é ativar os novos valores no ouvinte. No entanto, conforme mencionado para fetchAndActivate() , a ativação imediata deve ser evitada para UIs confidenciais.

Estratégia 2: ativar atrás da tela de carregamento

Como solução para o possível problema de IU encontrado na estratégia 1, você pode contar com uma tela de carregamento. Em vez de iniciar seu aplicativo imediatamente, mostre uma tela de carregamento e chame fetchAndActivate em seu manipulador de conclusão. Logo depois disso - novamente usando um retorno de chamada ou notificação - feche a tela de carregamento e permita que o usuário comece a interagir com seu aplicativo.

Se você usar esta estratégia, é recomendado adicionar um tempo limite à tela de carregamento. O tempo limite de um minuto do Configuração remota pode ser muito longo para que os usuários tenham uma experiência de inicialização de aplicativo de qualidade.

Ouvir atualizações do Configuração remota em tempo real chamando addOnConfigUpdateListener funciona bem com essa estratégia. Adicione o listener quando a tela de carregamento for exibida e use activate() em um ou mais pontos do seu aplicativo onde os valores da Configuração remota não causarão mudanças visuais drásticas.

Estratégia 3: Carregar novos valores para a próxima inicialização

Uma estratégia eficaz é carregar novos valores de configuração para ativar na próxima inicialização do seu aplicativo. Nessa estratégia, seu aplicativo ativa valores buscados na inicialização antes de tentar buscar novos valores, partindo do pressuposto de que já pode ter buscado — mas ainda não ativado — novos valores de configuração. A ordem das operações para esta estratégia é:

  1. Na inicialização, ative imediatamente os valores buscados anteriormente. Isso se aplica a quaisquer valores que você baixou do servidor em uma sessão anterior e é quase instantâneo.
  2. Enquanto o usuário interage com seu aplicativo, inicie uma chamada assíncrona para buscar novos valores de acordo com o intervalo mínimo de busca padrão e adicione um ouvinte de atualização de configuração em tempo real. O ouvinte em tempo real buscará automaticamente quaisquer valores publicados no servidor enquanto seu aplicativo estiver em execução. As atualizações em tempo real ignoram a configuração de intervalo mínimo de busca.
  3. No manipulador de conclusão ou retorno de chamada da chamada de busca, não faça nada. Seu aplicativo manterá os valores baixados até você ativá-los na próxima vez que o aplicativo for iniciado.

Com esta estratégia, o tempo de espera do usuário é bastante minimizado. Combinar as estratégias de busca e ouvinte em tempo real com chamadas activate() conforme necessário no ciclo de vida do aplicativo garante que os usuários tenham os valores mais recentes da Configuração remota à medida que interagem com seu aplicativo.

Carregando anti-estratégias

Como você deve ter entendido na discussão acima sobre os prós e contras do carregamento, há alguns padrões de uso a serem evitados.

  • Não atualize ou altere aspectos da IU enquanto o usuário estiver visualizando ou interagindo com ela, a menos que você tenha fortes motivos comerciais ou de aplicativo para fazer isso, como remover opções relacionadas a uma promoção que acabou de terminar.
  • Não envie um grande número de solicitações de busca simultâneas, o que pode resultar na limitação do aplicativo pelo servidor. Se você precisar buscar atualizações com frequência, use a Configuração remota em tempo real . Embora o risco de limitação seja baixo na maioria dos cenários de produção, ele pode ser um problema durante o desenvolvimento ativo, e a Configuração remota em tempo real foi projetada para esse caso de uso. Confira as orientações de limitação .
  • Não confie na conectividade de rede para obter valores do Configuração remota. Defina valores de parâmetros padrão no aplicativo para que seu aplicativo sempre se comporte conforme o esperado. Você pode manter sincronizados periodicamente os valores padrão de back-end do aplicativo e do Configuração remota usando os padrões de modelo baixados .

Próximos passos

Essas três estratégias básicas não constituem de forma alguma uma lista completa das maneiras de carregar valores de configuração. Dependendo de suas necessidades, você poderá elaborar estratégias muito mais sofisticadas.

Confira a referência da API da sua plataforma para saber mais sobre as chamadas específicas para buscar e ativar valores de configuração.