Puoi attivare una funzione in risposta agli eventi Firebase Remote Config, tra cui 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 un diff di due versioni di un template.
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 template, ad esempio il numero di versione e l'ora dell'aggiornamento.
Puoi anche recuperare l'email dell'utente che ha apportato 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 che ha sostituito. La funzione esamina il campo versionNumber dell'oggetto template e recupera la versione corrente (appena aggiornata) insieme alla versione con un numero inferiore:
exports.showConfigDiff = functions.remoteConfig.onUpdate(versionMetadata => { return 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 ottenere l'oggetto template. Per un esempio che incorpora la logica client Remote Config e Firebase Cloud Messaging, consulta Propaga gli aggiornamenti di Remote Config in tempo reale.