Remote Config tetikleyicileri


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 olaylarına yanıt olarak bir işlevi tetikleyebilirsiniz. Bu kılavuzda, iki şablon sürümünün farkını alan bir Remote Config arka plan işlevinin nasıl oluşturulacağı açıklanmaktadır.

Remote Config işlevini tetikleme

Remote Config etkinlikleri için 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üncellemesiyle ilgili temel meta veri alanlarını (ör. sürüm numarası ve güncelleme zamanı) içerir. Güncellemeyi yapan kullanıcının e-posta adresini, adıyla ve varsa resimle birlikte de alabilirsiniz.

Aşağıda, her güncellenen sürümün ve yerine geçtiğ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 mevcut (yeni güncellenen) sürümü, bir sürüm daha eski olanla 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 örnekte, farkı oluşturmak ve şablon nesnesini almak için isteği oluşturmak üzere json-diff ve request-promise modülleri kullanılır. Remote Config istemci mantığının yanı sıra Firebase Cloud Messaging'yi de içeren bir örnek için Remote Config güncellemelerini anlık olarak yayma başlıklı makaleyi inceleyin.