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