Yeni bir yapılandırma sürümünün yayınlanması veya daha eski bir sürüme geri alma da dahil olmak üzere, Firebase Remote Config olaylarına yanıt olarak bir işlevi tetikleyebilirsiniz. Bu kılavuz, iki şablon sürümünün farkını gerçekleştiren bir Remote Config arka plan işlevinin nasıl oluşturulacağını açıklar.
Bir Remote Config işlevini tetikleyin
Bir Remote Config işlevini tetiklemek için, functions.remoteConfig
tarafından sağlanan onUpdate
işleyicisini kullanın. onUpdate
tarafından döndürülen TemplateVersion
nesnesi, sürüm numarası ve güncellemenin zamanı gibi bir şablon güncellemesi için anahtar meta veri alanlarını içerir. Güncellemeyi yapan kullanıcının e-postasını, varsa adını ve resmini de alabilirsiniz.
Burada, güncellenen her sürümün ve değiştirdiğ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 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 alma isteğini oluşturmak için json-diff
ve request-promise
modüllerini kullanır. Remote Config istemci mantığını ve Firebase Cloud Messaging'i içeren bir örnek için bkz . Remote Config güncellemelerini gerçek zamanlı olarak yay .