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ünün karşılaştırmasını yapan bir Remote Config arka plan işlevi oluşturma işlemi 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, güncellemenin sürüm numarası ve zamanı gibi bir şablon güncellemesiyle ilgili önemli meta veri alanlarını içerir.
Ayrıca, güncellemeyi yapan kullanıcının e-postasını, adı ve varsa resmi ile birlikte 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 mevcut (yeni güncellenmiş) sürümü bir sayı daha düşük 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 ö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ın yanı sıra Firebase Cloud Messaging'ü içeren bir örnek için Remote Config güncellemelerini gerçek zamanlı olarak yayma başlıklı makaleyi inceleyin.