Puoi attivare una funzione in risposta a Firebase Remote Config eventi, inclusa la pubblicazione di una nuova versione della configurazione o il rollback a una versione precedente. Questa guida descrive come creare una Remote Config funzione di background che esegue un diff di due versioni del modello.
Attivare una funzione di Remote Config
Per definire un gestore per gli eventi Remote Config, utilizza la
functions.remoteConfig
funzione onUpdate() del modulo.
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'indirizzo email dell'utente che ha eseguito l'aggiornamento, con il nome e un'immagine, se disponibili.
Ecco un esempio di funzione Remote Config che
restituisce un diff di ogni versione aggiornata e della versione che ha sostituito. La funzione esamina il campo versionNumber dell'oggetto modello e recupera la versione corrente (appena aggiornata) insieme alla versione con 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 json-diff e
request-promise moduli per
creare il diff e creare la richiesta per ottenere l'oggetto modello. Per un esempio
che incorpora la logica client Remote Confige Firebase Cloud Messaging,
consulta Propagare gli aggiornamenti di Remote Config in tempo reale.