您可以觸發函式來回應 Firebase Remote Config 事件,包括發布新設定版本或復原至舊版本。本指南說明如何建立Remote Config背景函式,比較兩個範本版本之間的差異。
觸發 Remote Config 函式
如要定義 Remote Config 事件的處理常式,請使用 functions.remoteConfig
模組的 onUpdate()
函式。onUpdate
傳回的 TemplateVersion
物件包含範本更新的鍵中繼資料欄位,例如版本號碼和更新時間。您也可以擷取更新者的電子郵件地址,以及名稱和圖片 (如有)。
以下是 Remote Config 函式的範例,這個函式會傳回每個更新版本與取代版本的差異。函式會檢查範本物件的 versionNumber
欄位,並擷取目前 (新更新) 版本和低一個版本的版本號碼:
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; }); });
這個範例會使用 json-diff
和 request-promise
模組建立差異,並建構要求來取得範本物件。如需整合 Remote Config 用戶端邏輯和 Firebase Cloud Messaging 的範例,請參閱「即時傳播遠端設定更新」。