Aktywatory Zdalnej konfiguracji


Funkcję możesz wywołać w odpowiedzi na zdarzenia Firebase Remote Config, w tym opublikowanie nowej wersji konfiguracji lub wycofanie starszej wersji. Z tego przewodnika 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ć procedurę 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ć adres e-mail użytkownika, który wprowadził zmianę, wraz z nazwą i obrazem (jeśli jest dostępny).

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ę oraz wersję o jeden numer 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;
    });
});

Ten przykład używa modułów json-diff i request-promise do tworzenia różnic i tworzenia żądania w celu uzyskania obiektu szablonu. Przykład, który zawiera logikę klienta Remote Config, a także Firebase Cloud Messaging, znajdziesz w artykule Rozpowszechnianie aktualizacji Zdalnej konfiguracji w czasie rzeczywistym.