Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

Триггеры Remote Config

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

Запуск функции удаленной настройки

Для того, чтобы вызвать функцию Удаленного 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 модулей для создания сравнения и построить запрос , чтобы получить объект шаблона. Для образца , который включает в себя логику удаленного клиента Config, а также Firebase Cloud Messaging, см обновления Propagate Remote Config в режиме реального времени .