Rozszerz zdalną konfigurację za pomocą Cloud Functions


Funkcję możesz wywołać w odpowiedzi na zdarzenia Remote Config, w tym na publikację nowej wersji konfiguracji lub wycofanie starszej wersji. Z tego poradnika dowiesz się, jak utworzyć funkcję Remote Config działającą 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 funkcję onUpdate zawiera kluczowe pola metadanych aktualizacji szablonu, takie jak numer wersji i czas aktualizacji. Możesz też pobrać e-maila użytkownika, który wprowadził aktualizację, wraz z jego nazwą i obrazem, jeśli jest dostępny.

Oto przykład funkcji Remote Config, która zwraca różnice między każdą zaktualizowaną wersją a zastąpioną wersją. Funkcja bada pole versionNumber obiektu szablonu i pobiera aktualną (nowo zaktualizowaną) wersję razem z wersją o numerze 1 niższą:

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-diff i request-promise do utworzenia różnic i utworzenia żądania pobrania obiektu szablonu. Przykładowy kod, który zawiera logikę klienta Remote Config, a także Firebase Cloud Messaging, znajdziesz w artykule Rozpowszechnianie aktualizacji Zdalnej konfiguracji w czasie rzeczywistym.