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 Config-Funktion aus
Um eine Remote Config-Funktion auszulösen, verwenden Sie den onUpdate
Handler, der von functions.remoteConfig
bereitgestellt wird. 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 für den Benutzer abrufen, der die Aktualisierung vorgenommen hat, mit Namen und einem Bild, sofern verfügbar.
Hier ist ein Beispiel für eine Remote Config-Funktion, die einen Unterschied 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; }); });
Dieses Beispiel verwendet die Module json-diff
und request-promise
, um den Diff zu erstellen und die Anforderung zum Abrufen des Vorlagenobjekts zu erstellen. Ein Beispiel, das sowohl Remote Config-Clientlogik als auch Firebase Cloud Messaging enthält, finden Sie unter Propagate Remote Config-Updates in Echtzeit .