Catch up on everthing we announced at this year's Firebase Summit. Learn more

Remote Config 触发器

您可以触发一个函数来响应 Firebase Remote Config 事件,包括发布新的配置版本或回滚到旧版本。本指南介绍如何创建 Remote Config 后台函数,以便对两个模板版本执行差异比较。

触发 Remote Config 函数

如需触发 Remote Config 函数,请使用 functions.remoteConfig 提供的 onUpdate 处理程序。onUpdate 返回的 TemplateVersion 对象包含模板更新的关键元数据字段,例如版本号和更新时间。您还可以检索执行更新的用户的电子邮件地址,以及姓名和图片(如果有)。

下面是一个 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-diffrequest-promise 模块来创建差异比较并构建获取模板对象的请求。如需查看纳入了 Remote Config 客户端逻辑以及 Firebase Cloud Messaging 的示例,请参阅实时传播 Remote Config 更新