Puede activar una función en respuesta a eventos de Remote Config, incluida la publicación de una nueva versión de configuración o la reversión a una versión anterior. Esta guía describe cómo crear una función en segundo plano de Remote Config que realiza una diferencia entre dos versiones de plantilla.
Activar una función de configuración remota
Para definir un controlador para eventos de Remote Config, use la función onUpdate()
del módulo functions.remoteConfig
. El objeto TemplateVersion
devuelto por onUpdate
contiene los campos de metadatos clave para una actualización de plantilla, como el número de versión y la hora de la actualización. También puede recuperar el correo electrónico del usuario que realizó la actualización, con el nombre y una imagen si está disponible.
A continuación se muestra un ejemplo de una función de Remote Config que devuelve una diferencia de cada versión actualizada y la versión que reemplazó. La función examina el campo versionNumber
del objeto de plantilla y recupera la versión actual (recién actualizada) junto con la versión un número inferior:
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 ejemplo utiliza los módulos json-diff
y request-promise
para crear la diferencia y generar la solicitud para obtener el objeto de plantilla. Para ver un ejemplo que incorpora la lógica del cliente de Remote Config, así como Firebase Cloud Messaging, consulte Propagar actualizaciones de Remote Config en tiempo real .