Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Desencadenadores de configuración remota

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Puede activar una función en respuesta a eventos de Firebase 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 de fondo de Remote Config que realiza una diferencia de dos versiones de plantilla.

Activar una función de configuración remota

Para activar una función de configuración remota, use el controlador onUpdate proporcionado por 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 nombre y una imagen si está disponible.

Aquí hay un ejemplo de una función de configuración remota que devuelve una diferencia de cada versión actualizada y la versión que reemplazó. La función versionNumber el campo número de versión del objeto de plantilla y recupera la versión actual (actualizada recientemente) 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;
    });
});

Esta muestra usa los módulos json-diff y request-promise para crear la diferencia y compilar la solicitud para obtener el objeto de plantilla. Para obtener una muestra que incorpora la lógica del cliente de Remote Config, así como Firebase Cloud Messaging, consulte Propagación de actualizaciones de Remote Config en tiempo real .