Wyzwalacze zdalnej konfiguracji


Możesz uruchomić funkcję w odpowiedzi na zdarzenia Firebase Remote Config , w tym na publikację nowej wersji konfiguracji lub przywrócenie starszej wersji. W tym przewodniku opisano, jak utworzyć funkcję tła Zdalnej konfiguracji, która przeprowadza porównanie dwóch wersji szablonów.

Uruchom funkcję zdalnej konfiguracji

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

Oto przykład funkcji Remote Config, która zwraca różnicę między każdą zaktualizowaną wersją i wersją, którą zastąpiła. Funkcja sprawdza pole versionNumber obiektu szablonu i pobiera aktualną (nowo zaktualizowaną) wersję wraz z 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;
    });
});

W tym przykładzie użyto modułów json-diff i request-promise do utworzenia różnicy i zbudowania żądania w celu uzyskania obiektu szablonu. Aby zapoznać się z przykładem obejmującym logikę klienta Remote Config oraz Firebase Cloud Messaging, zobacz Propagowanie aktualizacji Remote Config w czasie rzeczywistym .