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 Remote Configfunzione in background che esegue la 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 (appena aggiornata) insieme alla versione precedente:
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.