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 dieser Anleitung wird beschrieben, wie Sie eine Remote Config-Hintergrundfunktion erstellen, die einen Vergleich zwischen zwei Vorlagenversionen durchführt.
Lösen Sie eine Remote-Konfigurationsfunktion aus
Um einen Handler für Remote Config-Ereignisse zu definieren, 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, wie z. B. die Versionsnummer und die Uhrzeit der Aktualisierung. Sie können auch die E-Mail des Benutzers abrufen, der die Aktualisierung vorgenommen hat, mit Namen und einem Bild, falls verfügbar.
Hier ist ein Beispiel für eine Remote-Konfigurationsfunktion, die einen Unterschied zwischen jeder aktualisierten Version und der ersetzten Version zurückgibt. Die Funktion untersucht das Feld versionNumber
des Vorlagenobjekts und ruft die aktuelle (neu aktualisierte) Version zusammen mit der um eine Nummer niedrigeren Version 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 das Diff zu erstellen und die Anforderung zum Abrufen des Vorlagenobjekts zu erstellen. Ein Beispiel, das die Client-Logik von Remote Config sowie Firebase Cloud Messaging umfasst, finden Sie unter Propagieren von Remote-Config-Updates in Echtzeit .