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 auf eine ältere Version. In diesem Leitfaden wird beschrieben, wie Sie eine Remote Config-Hintergrundfunktion erstellen, die einen Diff-Vergleich von zwei Vorlagenversionen durchführt.
Remote Config-Funktion auslösen
Wenn Sie einen Handler für Remote Config-Ereignisse definieren möchten, verwenden Sie die Funktion onUpdate() des Moduls functions.remoteConfig.
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, einschließlich Name und Bild, falls verfügbar.
Hier ist ein Beispiel für eine Remote Config-Funktion, die einen Diff jeder aktualisierten Version und der ersetzten Version zurückgibt. Die Funktion prüft das Feld versionNumber des Vorlagenobjekts und ruft die aktuelle (neu aktualisierte) Version zusammen mit der Version ab, die eine Nummer niedriger ist:
exports.showConfigDiff = functions.remoteConfig.onUpdate(versionMetadata => { return 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 zu erstellen und die Anfrage zum Abrufen des Vorlagenobjekts zu erstellen. Ein Beispiel, das sowohl die Remote Config-Clientlogik als auch Firebase Cloud Messaging enthält, finden Sie unter Remote Config-Updates in Echtzeit weitergeben.