Firebase is back at Google I/O on May 10! Register now

Remote Config-Trigger

Mit Sammlungen den Überblick behalten Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.

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 .