Gatilhos do Configuração remota


Você pode acionar uma função em resposta a eventos de Firebase Remote Config, incluindo a publicação de uma nova versão de configuração ou a reversão para uma versão mais antiga. Neste guia, descrevemos como criar uma função em segundo plano de Remote Config que executa uma comparação entre duas versões de modelo.

Acionar uma função de Remote Config

Para definir um gerenciador para eventos de Remote Config, use a função onUpdate() do módulo functions.remoteConfig. O objeto TemplateVersion retornado por onUpdate contém os principais campos de metadados para uma atualização de modelo, como o número da versão e o horário da atualização. Você também pode recuperar o e-mail do usuário que fez a atualização, com um nome e uma imagem, se disponível.

Este é um exemplo de uma função de Remote Config que retorna uma comparação entre as versões atualizadas e as versões que foram substituídas por elas. A função examina o campo versionNumber do objeto de modelo e recupera a versão atual (recém-atualizada) e a versão imediatamente anterior:

exports.showConfigDiff = functions.remoteConfig.onUpdate(versionMetadata => {
  return admin.credential.applicationDefault().getAccessToken()
    .then(accessTokenObj => {
      return accessTokenObj.access_token;
    })
    .then(accessToken => {
      const currentVersion = versionMetadata.versionNumber;
      const templatePromises = [];
      templatePromises.push(getTemplate(currentVersion, accessToken));
      templatePromises.push(getTemplate(currentVersion - 1, accessToken));

      return Promise.all(templatePromises);
    })
    .then(results => {
      const currentTemplate = results[0];
      const previousTemplate = results[1];

      const diff = jsonDiff.diffString(previousTemplate, currentTemplate);

      functions.logger.log(diff);

      return null;
    }).catch(error => {
      functions.logger.error(error);
      return null;
    });
});

Neste exemplo, usamos os módulos json-diff e request-promise para criar a comparação e desenvolver a solicitação a fim de receber o objeto de modelo. Para conferir um exemplo que incorpora a lógica de cliente de Remote Config e Firebase Cloud Messaging, consulte Propagar atualizações da Configuração remota em tempo real.