Remote Config tetikleyicileri (1. nesil)

Yeni bir yapılandırma sürümünün yayınlanması veya eski bir sürüme geri dönülmesi gibi Firebase Remote Config etkinliklerine yanıt olarak bir işlevi tetikleyebilirsiniz. Bu kılavuzda, iki şablon sürümü arasında fark işlemi gerçekleştiren bir Remote Config arka plan işlevinin nasıl oluşturulacağı açıklanmaktadır.

Remote Config işlevini tetikleme

Remote Config etkinlikleri için bir işleyici tanımlamak üzere 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 şablon güncellemesi için önemli meta veri alanlarını içerir. Ayrıca, güncellemeyi yapan kullanıcının e-posta adresini, adını ve varsa resmini de alabilirsiniz.

Aşağıda, güncellenen her sürüm ile değiştirilen sürüm arasındaki farkı döndüren bir Remote Config işlevi örneği verilmiştir. İşlev, şablon nesnesinin versionNumber alanını inceler ve mevcut (yeni güncellenen) sürümü, bir numara daha düşük olan sürümle birlikte alır:

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

Bu örnekte, farkı oluşturmak ve şablon nesnesini alma isteğini oluşturmak için json-diff ve request-promise modülleri kullanılır. Remote Config istemci mantığının yanı sıra Firebase Cloud Messaging içeren bir örnek için Remote Config güncellemelerini anlık olarak yayma başlıklı makaleyi inceleyin.