Remote Config tetikleyicileri


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

Remote Config işlevini tetikleyin

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, şablon güncellemesi için önemli meta veri alanlarını (ör. güncellemenin sürüm numarası ve zamanı) içerir. 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ün ve değiştirildiği sürümün farkını döndüren bir Remote Config işlevi örneği verilmiştir. İşlev, şablon nesnesinin versionNumber alanını inceler ve bir sayı önceki sürümle birlikte geçerli (yeni güncellenmiş) sürümü 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 örnekte, farkı oluşturmak ve şablon nesnesini alma isteği oluşturmak için json-diff ve request-promise modülleri kullanılmaktadır. Remote Config istemci mantığını ve Firebase Cloud Messaging istemci mantığını kullanan bir örnek için Remote Config güncellemelerini gerçek zamanlı olarak uygulama bölümüne bakın.