Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Attivazione della configurazione remota

È possibile attivare una funzione in risposta agli eventi di configurazione remota di Firebase , inclusa la pubblicazione di una nuova versione di configurazione o il rollback a una versione precedente. Questa guida descrive come creare una funzione di sfondo di configurazione remota che esegue una diff di due versioni di modello.

Attiva una funzione di configurazione remota

Per attivare una funzione di configurazione remota, utilizzare il onUpdate gestore fornito da functions.remoteConfig . L'oggetto TemplateVersion restituito da onUpdate contiene i campi chiave dei metadati per un aggiornamento del modello come il numero di versione e l'ora dell'aggiornamento. Puoi anche recuperare l'e-mail per l'utente che ha effettuato l'aggiornamento, con nome e un'immagine se disponibile.

Ecco un esempio di una funzione di configurazione remota che restituisce un diff di ogni versione aggiornata e la versione che ha sostituito. La funzione esamina il campo versionNumber dell'oggetto modello e recupera la versione corrente (appena aggiornata) insieme al numero di versione uno 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);

      console.log(diff);

      return null;
    }).catch(error => {
      console.error(error);
      return null;
    });
});

Questo esempio utilizza i moduli json-diff e request-promise per creare il diff e creare la richiesta per ottenere l'oggetto template. Per un esempio che incorpora la logica client di Remote Config e Firebase Cloud Messaging, vedere Propagare gli aggiornamenti di Remote Config in tempo reale .