Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Триггеры удаленной настройки

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

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

Активировать функцию удаленной настройки

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

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

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

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