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.
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.
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.
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.