Attivatori di Remote Config


Puoi attivare una funzione in risposta agli eventi Firebase Remote Config, inclusa la pubblicazione di una nuova versione della configurazione o il rollback a una versione precedente. Questa guida descrive come creare una funzione in background Remote Config che esegue una differenza tra due versioni del modello.

Attiva una funzione Remote Config

Per definire un gestore per gli eventi Remote Config, utilizza la funzione onUpdate() del modulo functions.remoteConfig. L'oggetto TemplateVersion restituito da onUpdate contiene i campi dei metadati chiave per un aggiornamento del modello, ad esempio il numero di versione e l'ora dell'aggiornamento. Puoi anche recuperare l'email dell'utente che ha eseguito l'aggiornamento, con il nome e un'immagine, se disponibile.

Ecco un esempio di funzione Remote Config che restituisce una differenza di ogni versione aggiornata e della versione sostituita. La funzione esamina il campo versionNumber dell'oggetto modello e recupera la versione corrente (nuovamente aggiornata) insieme al numero di versione inferiore di uno:

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;
    });
});

Questo esempio utilizza i moduli json-diff e request-promise per creare la differenza e generare la richiesta per recuperare l'oggetto modello. Per un esempio che incorpora la logica del client Remote Config e Firebase Cloud Messaging, consulta Propagare gli aggiornamenti di Remote Config in tempo reale.