Uzak Yapılandırma tetikleyicileri


Firebase Remote Config olaylarına yanıt olarak, yeni bir yapılandırma sürümünün yayınlanması veya eski bir sürüme geri dönüş dahil olmak üzere bir işlevi tetikleyebilirsiniz. Bu kılavuzda, iki şablon sürümünün farkını gerçekleştiren Remote Config arka plan işlevinin nasıl oluşturulacağı açıklanmaktadır.

Remote Config işlevini tetikleyin

Remote Config olaylarına yönelik bir işleyici tanımlamak için, functions.remoteConfig modülünün onUpdate() işlevini kullanın. onUpdate tarafından döndürülen TemplateVersion nesnesi, sürüm numarası ve güncelleme zamanı gibi bir şablon güncellemesine ilişkin önemli meta veri alanlarını içerir. Güncellemeyi yapan kullanıcının e-postasını, varsa adı ve resmiyle birlikte alabilirsiniz.

Güncellenen her sürümün ve değiştirildiği sürümün farkını döndüren Remote Config işlevinin bir örneğini burada bulabilirsiniz. İşlev, şablon nesnesinin versionNumber alanını inceler ve geçerli (yeni güncellenen) sürümü, bir numaralı sürümle birlikte alır:

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

Bu örnek, diff'i oluşturmak ve şablon nesnesini almaya yönelik isteği oluşturmak için json-diff ve request-promise modüllerini kullanır. Remote Config istemci mantığının yanı sıra Firebase Cloud Messaging'i de içeren bir örnek için bkz . Remote Config güncellemelerini gerçek zamanlı yayma.