Sie können eine Funktion als Reaktion auf Remote Config-Ereignisse auslösen, z. B. die Veröffentlichung einer neuen Konfigurationsversion oder das Rollback auf eine ältere 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 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 die Uhrzeit der Aktualisierung.
Sie können auch die E-Mail-Adresse des Nutzers abrufen, der die Aktualisierung vorgenommen hat, einschließlich Name und Bild, sofern verfügbar.
Hier ein Beispiel für eine Remote Config-Funktion, die den Unterschied 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 einer 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 Module json-diff
und request-promise
verwendet, um den Diff-Vergleich 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.