Estratégias de carregamento do Configuração remota do Firebase

O Configuração remota do Firebase oferece muita flexibilidade sobre como e quando buscar novos valores do servidor e ativá-los no seu app. Isso permite que você tenha uma experiência do usuário final de qualidade ao controlar o tempo de quaisquer alterações de configuração visíveis. Neste guia, analisaremos algumas estratégias de carregamento e discutiremos as principais considerações a fim de escolher a melhor opção para seu app.

Estratégia 1: buscar e ativar no carregamento

Nesta estratégia, seu app chamaria fetchAndActivate() quando ele for inicializado pela primeira vez para buscar novos valores do Configuração remota e ativá-los assim que o carregamento estiver concluído. Essa abordagem simples funciona bem para alterações de configuração que não causam alterações visuais significativas na IU. Ela precisa ser evitada em qualquer situação em que sua IU possa mudar de forma perceptível enquanto os usuários estiverem usando.

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

Uma solução para o possível problema da IU encontrado na estratégia 1 seria usar uma tela de carregamento. Em vez de iniciar seu app imediatamente, exiba uma tela de carregamento e chame fetchAndActivate no seu gerenciador de conclusão. Depois disso, use novamente um retorno de chamada ou uma notificação. Dispense a tela de carregamento e permita que o usuário comece a interagir com o app.

Caso você use essa estratégia, recomendamos incluir um tempo limite à tela de carregamento. O tempo limite de um minuto do Configuração remota pode ser muito longo para uma experiência de inicialização do app de qualidade para os usuários.

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

Uma estratégia eficaz seria carregar novos valores de configuração para serem ativados na próxima inicialização do seu app. Nessa estratégia, seu app ativa os valores buscados na inicialização antes de tentar buscar novos valores. Isso pressupõe que ele já tenha feito a busca antes, mas os valores ainda não foram ativados. Veja abaixo a ordem de operações para essa estratégia:

  1. Na inicialização, chame activateFetched() imediatamente. Isso aplica, quase instantaneamente, todos os valores salvos a partir do servidor em uma sessão anterior.
  2. Enquanto o usuário interage com o app, inicie uma chamada assíncrona para buscar novos valores.
  3. Não faça nada no gerenciador de conclusão da chamada de busca. Seu app manterá os valores salvos até que você os ative na próxima vez que ele for iniciado.

Essa estratégia minimiza muito o tempo de espera do usuário. No entanto, o usuário precisa executar seu app uma segunda vez para ver a configuração mais recente. Será necessário equilibrar essas considerações com relação à sua lógica de negócios e de apps.

Estratégias de carregamento a serem evitadas

Como você pôde perceber na discussão acima sobre as vantagens e desvantagens 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 relacionados ao app, como remover opções referentes a uma promoção que acabou de ser encerrada.
  • Não envie números em massa de solicitações de busca simultâneas, porque isso pode resultar na limitação do servidor. Os riscos disso acontecer são baixos na maioria dos cenários de produção, mas pode ser um problema durante o desenvolvimento ativo. Veja as orientações sobre limitação para Android e iOS.

A seguir

Essas três estratégias básicas não compõem, de forma alguma, uma lista completa das maneiras de carregar valores de configuração. Dependendo das suas necessidades, é possível criar estratégias mais sofisticadas, como as atualizações de segundo plano baseadas em função descritas em Propagar atualizações em tempo real.

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