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