Puedes activar una función en respuesta a los eventos de Firebase Remote Config, incluida la publicación de una versión de configuración nueva o la reversión a una versión anterior. En esta guía, se describe cómo crear una función en segundo plano de Remote Config que ejecuta un comando diff de dos versiones de plantilla.
Activa una función de Remote Config
Para definir un controlador para eventos de Remote Config, usa la función
onUpdate()
del módulo functions.remoteConfig
.
El objeto TemplateVersion
que muestra
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 se puede recuperar el correo electrónico del usuario que realizó la actualización, con un nombre
y una imagen, si se encuentran disponibles.
Este es un ejemplo de una función de Remote Config que
muestra una diferencia de cada versión actualizada y la versión que reemplazó. La función
examina el campo versionNumber
del objeto de la plantilla y recupera la
versión actual (actualizada recientemente) junto con la versión inmediatamente 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; }); });
En este ejemplo, se utilizan los módulos json-diff
y
request-promise
para crear
la diferencia y formular la solicitud a fin de obtener el objeto de plantilla. Para ver una muestra
en la que se incorpora la lógica del cliente de Remote Config y Firebase Cloud Messaging,
consulta Propaga actualizaciones de Remote Config en tiempo real.