您可以觸發函式,回應 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 的範例,請參閱「即時套用遠端設定更新」。