Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Déclencheurs de configuration à distance

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Vous pouvez déclencher une fonction en réponse aux événements Firebase Remote Config , y compris la publication d'une nouvelle version de configuration ou le retour à une version antérieure. Ce guide décrit comment créer une fonction d'arrière-plan Remote Config qui effectue un diff de deux versions de modèle.

Déclencher une fonction de configuration à distance

Pour déclencher une fonction Remote Config, utilisez le gestionnaire onUpdate fourni par functions.remoteConfig . L'objet TemplateVersion renvoyé par onUpdate contient les champs de métadonnées clés pour 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'e-mail de l'utilisateur qui a effectué la mise à jour, avec le nom et une image si disponible.

Voici un exemple de fonction Remote Config qui renvoie un diff de chaque version mise à jour et de la version qu'elle a remplacée. La fonction examine le champ versionNumber de l'objet modèle et récupère la version actuelle (récemment mise à jour) avec le numéro de version inférieur :

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 le diff et générer la requête pour obtenir l'objet modèle. Pour un exemple qui intègre la logique du client Remote Config ainsi que Firebase Cloud Messaging, consultez Propager les mises à jour de Remote Config en temps réel .