Entender a Configuração remota em tempo real


A Configuração remota em tempo real permite receber chaves e valores de parâmetros atualizados assim que eles são publicados no servidor. Isso permite atualizar rapidamente qualquer tipo de atributo de app controlado por um valor de parâmetro da Configuração remota. Com as atualizações da Configuração remota em tempo real, é possível:

  • reduzir o risco lançando recursos gradualmente para os usuários segmentados e realizar uma reversão de emergência, se necessário;
  • aumentar o engajamento do usuário personalizando rapidamente as experiências do usuário enquanto eles usam o app. Por exemplo, você pode atualizar banners e oferecer incentivos para os usuários que correspondem a propriedades específicas do Google Analytics ou ajustar dinamicamente a dificuldade do jogo para coortes de jogadores;
  • reduzir as dependências de builds e aumentar a produtividade do desenvolvedor: use os parâmetros da Configuração remota como flags de recursos para expor a funcionalidade para suas equipes de desenvolvimento e teste, mantendo-a oculta para os usuários na produção.

Para saber mais sobre como usar a Configuração remota, consulte O que você pode fazer com a Configuração remota?

Neste guia, você vai aprender:

  • como funciona a relação entre cliente e servidor que oferece suporte a atualizações em tempo real;
  • a entender a funcionalidade em tempo real no SDK;
  • como usar as atualizações em tempo real para manter a configuração do app atualizada.

A conexão cliente-servidor em tempo real

Ao implementar a Configuração remota em tempo real no seu app, você cria um listener em tempo real que abre uma conexão HTTP com o back-end da Configuração remota. A solicitação inclui a versão da configuração armazenada no dispositivo. O servidor da Configuração remota em tempo real usa uma mensagem de invalidação to para sinalizar ao app quando uma versão mais recente de uma configuração do lado do servidor precisa ser buscada.

Se o servidor tiver uma versão mais recente, ele enviará o sinal de invalidação imediatamente. Se ele não tiver uma versão mais recente, manterá a conexão aberta e aguardará até que uma seja publicada no servidor. Quando o SDK cliente recebe um sinal de invalidação, ele o busca automaticamente e chama o callback do listener registrado quando você abriu a conexão do listener. Essa busca é semelhante à chamada de busca que você pode fazer com o SDK, mas ignora qualquer configuração de armazenamento em cache ou minimumFetchInterval. A conexão cliente-servidor é mantida enquanto o aplicativo está em primeiro plano.

Fluxo de trabalho cliente-servidor da Configuração remota em tempo real

Como a conexão cliente-servidor é feita por HTTP, ela não requer dependências em outras bibliotecas.

Detectar atualizações

As atualizações em tempo real complementam as chamadas fetch da Configuração remota. Recomendamos que você chame a busca quando o app for iniciado (ou em algum momento durante o ciclo de vida do app) e detecte as atualizações da Configuração remota em tempo real durante a sessão do usuário, para garantir que você tenha os valores mais recentes assim que eles são publicados no servidor.

Para detectar atualizações, chame addOnConfigUpdateListener, implementando um callback invocado sempre que uma atualização da Configuração remota estiver disponível no app. Nos bastidores, essa chamada começa a detectar atualizações do servidor da Configuração remota. Para saber mais sobre a relação cliente- servidor, consulte a seção anterior.

O callback geralmente é um bom lugar para usar activate e disponibilizar os parâmetros de configuração atualizados no seu app. Consulte Estratégias de carregamento da Configuração remota do Firebase para conferir outras estratégias para ativar valores de parâmetro quando você estiver usando a Configuração remota em tempo real.

Ativar seletivamente valores de parâmetro

Quando chamar addOnConfigUpdateListener, aguarde a alteração e ative-a.

O callback onUpdate é chamado quando uma nova versão do modelo é buscada automaticamente e quando essa nova versão muda para os valores de parâmetro ativados no app.

Esses callbacks são invocados com um parâmetro configUpdate. configUpdate contém updatedKeys, que é o conjunto de chaves de parâmetros alteradas que iniciou a atualização em tempo real e inclui o seguinte:

  • chaves de parâmetro adicionadas ou removidas;
  • chaves de parâmetro com valores alterados;
  • chaves de parâmetro com metadados alterados (por exemplo, informações de personalização da Configuração remota);
  • chaves de parâmetro em que a origem de valor mudou (por exemplo, um valor padrão no app sendo atualizado para um valor do lado do servidor).

Se você estiver usando um listener em tempo real em uma visualização específica no seu app, poderá verificar se os parâmetros relevantes para essa visualização mudaram antes da ativação.

Às vezes, uma busca (iniciada quando você chama o método fetch ou usando a Configuração remota em tempo real) não resulta em uma atualização para o cliente. Nesses casos, o método onUpdate ou a conclusão não são chamados.

Adicionar e remover listeners

addOnConfigUpdateListener é o ponto de entrada principal da Configuração remota em tempo real. Chamar esse listener pela primeira vez no ciclo de vida do app abre a conexão com o back-end. As chamadas seguintes reutilizam a mesma conexão, multiplicando a mensagem de invalidação descrita na conexão cliente-servidor em tempo real.

A chamada retorna um "registro de listener", que tem um método chamado remove.

Para parar de detectar, armazene a referência ao registro do listener. Chame remove para interromper a detecção nesse registro. Se for o único listener registrado, chamar remove encerra a conexão em tempo real com o servidor.

É possível interromper manualmente a detecção de atualizações, mas isso, geralmente, não é necessário. A Configuração remota em tempo real interrompe automaticamente a detecção de atualizações quando o app fica em segundo plano e reinicia quando o app está em primeiro plano.

Próximas etapas

Confira as Noções básicas da Configuração remota do Firebase para configurá-la e começar a detectar atualizações em tempo real.