Firebase Remote Config olaylarına yanıt olarak, yeni bir yapılandırma sürümünün yayınlanması veya eski bir sürüme geri dönüş dahil olmak üzere bir işlevi tetikleyebilirsiniz. Bu kılavuzda, iki şablon sürümünün farkını gerçekleştiren Remote Config arka plan işlevinin nasıl oluşturulacağı açıklanmaktadır.
Remote Config işlevini tetikleyin
Remote Config olaylarına yönelik bir işleyici tanımlamak için, 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 bir şablon güncellemesine ilişkin önemli meta veri alanlarını içerir. Güncellemeyi yapan kullanıcının e-postasını, varsa adı ve resmiyle birlikte alabilirsiniz.
Güncellenen her sürümün ve değiştirildiği sürümün farkını döndüren Remote Config işlevinin bir örneğini burada bulabilirsiniz. İş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 almaya yönelik isteği oluşturmak için json-diff
ve request-promise
modüllerini kullanır. Remote Config istemci mantığının yanı sıra Firebase Cloud Messaging'i de içeren bir örnek için bkz . Remote Config güncellemelerini gerçek zamanlı yayma.