Vous pouvez déclencher une fonction en réponse à des événements Firebase Remote Config, y compris la publication d'une nouvelle version de configuration ou le rétablissement d'une ancienne version. Ce guide explique comment créer une fonction d'arrière-plan Remote Config qui effectue une comparaison de deux versions de modèle.
Déclencher une fonction Remote Config
Pour définir un gestionnaire pour les événements Remote Config, utilisez la fonction onUpdate()
du module functions.remoteConfig
.
L'objet TemplateVersion
renvoyé par onUpdate
contient les principaux champs de métadonnées d'une mise à jour de modèle, tels que le numéro de version et l'heure de la mise à jour.
Vous pouvez également récupérer l'adresse e-mail de l'utilisateur qui a effectué la mise à jour, avec son nom et une image si disponibles.
Voici un exemple de fonction Remote Config qui renvoie une différence entre chaque version mise à jour et la version qu'elle a remplacée. La fonction examine le champ versionNumber
de l'objet de modèle et récupère la version actuelle (récemment mise à jour) avec le numéro de version 1 situé en dessous:
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; }); });
Cet exemple utilise les modules json-diff
et request-promise
pour créer les différences et compiler la requête permettant d'obtenir l'objet de modèle. Pour obtenir un exemple qui intègre la logique client Remote Config ainsi que Firebase Cloud Messaging, consultez Propager les mises à jour Remote Config en temps réel.