Aktywatory Zdalnej konfiguracji


Funkcję możesz wywołać w odpowiedzi na zdarzenia Firebase Remote Config, w tym opublikowanie nowej wersji konfiguracji lub wycofanie zmian do starszej wersji. Z tego przewodnika dowiesz się, jak utworzyć Remote Configfunkcję w tle, która porównuje 2 wersje szablonu.

Aktywowanie funkcji Remote Config

Aby zdefiniować moduł obsługi zdarzeń Remote Config, użyj funkcji onUpdate() modułu functions.remoteConfig. Obiekt TemplateVersion zwrócony przez onUpdate zawiera kluczowe pola metadanych aktualizacji szablonu, takie jak numer wersji i czas aktualizacji. Możesz też pobrać adres e-mail użytkownika, który wprowadził aktualizację, wraz z jego imieniem i nazwiskiem oraz zdjęciem (jeśli jest dostępne).

Oto przykład funkcji Remote Config, która zwraca różnicę między każdą zaktualizowaną wersją a wersją, którą zastąpiła. Funkcja sprawdza pole versionNumber obiektu szablonu i pobiera bieżącą (nowo zaktualizowaną) wersję wraz z wersją o numerze o 1 niższym:

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;
    });
});

W tym przykładzie użyto modułów json-diffrequest-promise do utworzenia różnicy i skonstruowania żądania pobrania obiektu szablonu. Przykładowy kod, który zawiera logikę klienta Remote Config oraz Firebase Cloud Messaging, znajdziesz w artykule Propagowanie aktualizacji Zdalnej konfiguracji w czasie rzeczywistym.