คุณสามารถทริกเกอร์ฟังก์ชันเพื่อตอบสนองต่อเหตุการณ์ Firebase Remote Config ซึ่งรวมถึงการเผยแพร่เวอร์ชันการกำหนดค่าใหม่หรือการย้อนกลับไปใช้เวอร์ชันเก่า คู่มือนี้อธิบายวิธีสร้างฟังก์ชันเบื้องหลัง Remote Config ที่ทำการเปรียบเทียบความแตกต่างของเทมเพลต 2 เวอร์ชัน
เรียกใช้ฟังก์ชันการกำหนดค่าระยะไกล
หากต้องการกำหนดเครื่องจัดการสำหรับเหตุการณ์ Remote Config ให้ใช้ฟังก์ชัน onUpdate() ของโมดูล functions.remoteConfig
ออบเจ็กต์ TemplateVersion ที่แสดงผลโดย onUpdate มีช่องข้อมูลเมตาที่สำคัญสำหรับการอัปเดตเทมเพลต เช่น หมายเลขเวอร์ชันและเวลาที่อัปเดต
นอกจากนี้ คุณยังเรียกดูอีเมลของผู้ใช้ที่ทำการอัปเดต พร้อมชื่อและรูปภาพ (หากมี) ได้ด้วย
ต่อไปนี้คือตัวอย่างของฟังก์ชัน Remote Config ที่แสดงผลความแตกต่างของแต่ละเวอร์ชันที่อัปเดตและเวอร์ชันที่ถูกแทนที่ ฟังก์ชันจะตรวจสอบช่อง versionNumber ของออบเจ็กต์เทมเพลตและดึงข้อมูลเวอร์ชันปัจจุบัน (ที่อัปเดตใหม่) พร้อมกับเวอร์ชันที่ต่ำกว่า 1 หมายเลข
exports.showConfigDiff = functions.remoteConfig.onUpdate(versionMetadata => { return 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 ได้ที่เผยแพร่การอัปเดตการกำหนดค่าระยะไกลแบบเรียลไทม์