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. Este guia descreve como criar uma função em segundo plano do Configuração remota que realiza uma comparação de duas versões de modelo.
Acionar uma função de Configuração remota
Para definir um gerenciador para eventos do Configuração remota, 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 a hora da atualização. Você também pode recuperar o e-mail do usuário que fez a atualização, com nome e imagem, se disponível.
Aqui está um exemplo de função do Configuração remota que retorna uma comparação de cada versão atualizada e da 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 um número abaixo:
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; }); });
Este exemplo usa os módulos json-diff
e request-promise
para criar o diff e construir a solicitação para obter o objeto de modelo. Para ver um exemplo que incorpora a lógica do cliente da Configuração remota, bem como o Firebase Cloud Messaging, consulte Propagar atualizações da Configuração remota em tempo real .