Ir para o console

Acionadores do Configuração remota

Você pode acionar uma função em resposta a eventos do Configuração remota do Firebase, incluindo a publicação de uma nova versão de configuração ou a reversão para uma versão mais antiga. Veja neste guia como criar uma função em segundo plano do Configuração remota que executa uma comparação de duas versões de modelo.

Acionar uma função do Configuração remota

Para acionar uma função do Configuração remota, use o gerenciador onUpdate fornecido por functions.remoteConfig. O objeto TemplateVersion retornado por onUpdate contém os principais campos de metadado 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.

Aqui está um exemplo de uma função do Configuração remota que retorna uma comparação de cada versão atualizada e a versão que ela substituiu. A função examina o campo versionNumber do objeto de modelo e recupera a versão atual (recém-atualizada) junto com 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);

      console.log(diff);

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

Neste exemplo são usados os módulos json-diff e request-promise para criar a comparação e desenvolver a solicitação para receber o objeto de modelo. Para uma amostra que incorpore a lógica de cliente do Configuração remota e o Firebase Cloud Messaging, consulte Propagar atualizações do Configuração remota em tempo real.