Триггеры Remote Config (первое поколение)

Функцию можно запустить в ответ на Firebase Remote Config, например публикацию новой версии конфигурации или откат к более ранней версии. В этом руководстве рассказывается, как создать фоновую функцию Remote Config, которая сравнивает две версии шаблона.

Как настроить триггер функции Remote Config

Чтобы определить обработчик для событий Remote Config, используйте функцию onUpdate() модуля functions.remoteConfig. Объект TemplateVersion, возвращаемый функцией onUpdate, содержит ключевые поля метаданных для обновления шаблона, такие как номер версии и время обновления. Вы также можете получить адрес электронной почты пользователя, который внес изменения, а также его имя и изображение, если оно доступно.

Ниже приведен пример функции Remote Config, которая возвращает разницу между каждой обновленной версией и версией, которую она заменила. Функция проверяет поле versionNumber объекта шаблона и извлекает текущую (обновленную) версию вместе с предыдущей:

exports.showConfigDiff = functions.remoteConfig.onUpdate(versionMetadata => {
  return 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;
    });
});

В этом примере используются модули json-diff и request-promise, чтобы создать разницу и запрос для получения объекта шаблона. Пример, в котором используется клиентская логика Remote Config и Firebase Cloud Messaging, можно найти в статье Как распространять обновления Remote Config в реальном времени.