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