Remote Config-Trigger


Sie können eine Funktion als Reaktion auf Firebase Remote Config-Ereignisse auslösen, z. B. die Veröffentlichung einer neuen Konfigurationsversion oder den Rollback zu einer älteren Version. In dieser Anleitung wird beschrieben, wie Sie eine Remote Config-Hintergrundfunktion erstellen, die zwei Vorlagenversionen vergleicht.

Remote Config-Funktion auslösen

Verwenden Sie die Funktion onUpdate() des Moduls functions.remoteConfig, um einen Handler für Remote Config-Ereignisse zu definieren. Das von onUpdate zurückgegebene TemplateVersion-Objekt enthält die wichtigsten Metadatenfelder für eine Vorlagenaktualisierung, z. B. die Versionsnummer und den Zeitpunkt der Aktualisierung. Sie können auch die E-Mail-Adresse des Nutzers abrufen, der die Aktualisierung vorgenommen hat, sowie den Namen und ein Bild, falls verfügbar.

Hier sehen Sie ein Beispiel für eine Remote Config-Funktion, die einen Unterschied zwischen jeder aktualisierten Version und der Version zurückgibt, die sie ersetzt hat. Die Funktion untersucht das Feld versionNumber des Vorlagenobjekts und ruft die aktuelle (neu aktualisierte) Version zusammen mit der Version mit der Nummer eins niedriger ab:

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;
    });
});

In diesem Beispiel werden die Module json-diff und request-promise verwendet, um den Unterschied zu erstellen und die Anfrage zum Abrufen des Vorlagenobjekts zu erstellen. Ein Beispiel, das sowohl Remote Config-Clientlogik als auch Firebase Cloud Messaging enthält, finden Sie unter Remote Config-Aktualisierungen in Echtzeit weitergeben.