Sie können eine Funktion als Reaktion auf Firebase Remote Config Ereignisse auslösen, einschließlich der Veröffentlichung einer neuen Konfigurationsversion oder des Rollbacks zu einer älteren Version. In dieser Anleitung wird beschrieben, wie Sie eine Remote Config Hintergrundfunktion erstellen, die einen Vergleich zwischen zwei Vorlagenversionen durchführt.
Remote Config-Funktion auslösen
Verwenden Sie die
functions.remoteConfig
Funktion onUpdate() des Moduls, um einen Handler für Remote Config Ereignisse zu definieren.
Das von onUpdate zurückgegebene Objekt TemplateVersion 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, zusammen mit dem Namen und einem Bild, falls verfügbar.
Hier ist ein Beispiel für eine Remote Config Funktion, die
einen Vergleich zwischen jeder aktualisierten Version und der Version zurückgibt, die sie ersetzt hat. Die Funktion prüft das Feld versionNumber des Vorlagenobjekts und ruft die aktuelle (neu aktualisierte) Version zusammen mit der Version mit der um eins niedrigeren Nummer 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 json-diff und
request-promise Module verwendet, um
den Vergleich zu erstellen und die Anfrage zum Abrufen des Vorlagenobjekts zu erstellen. Ein Beispiel,
das sowohl die Remote Config Clientlogik als auch Firebase Cloud Messaging,
umfasst, finden Sie unter Remote Config-Aktualisierungen in Echtzeit weitergeben.