Trigger di configurazione remota


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

Attivare una funzione di configurazione remota

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

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

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 il diff e compilare la richiesta per ottenere l'oggetto modello. Per un esempio che incorpora la logica client di Remote Config e Firebase Cloud Messaging, consulta Propagare gli aggiornamenti di Remote Config in tempo reale .