É possível acionar uma função em resposta a eventos da 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. Este guia descreve como criar uma função em segundo plano da Configuração remota que executa uma comparação de duas versões do modelo.
Como acionar uma função da Configuração remota
Para acionar uma função da Configuração remota, use o gerenciador onUpdate
fornecido
por 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.
Aqui está um exemplo de uma função da 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); 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 formular a solicitação a fim de receber o objeto de modelo. Para uma amostra
que incorpore a lógica de cliente da Configuração remota assim como o Firebase Cloud Messaging,
consulte Propagar atualizações da Configuração remota em tempo real.