Firebase ให้การแจ้งเตือนสำหรับกิจกรรมการจัดการโครงการและแอปที่หลากหลาย ต่อไปนี้เป็นตัวอย่างเหตุการณ์ที่ Firebase สามารถส่งการแจ้งเตือนประเภทนี้ถึงคุณ:
- สำหรับ Crashlytics เราสามารถแจ้งเตือนคุณหากแอปของคุณมีข้อขัดข้องเพิ่มขึ้นอย่างมาก
- สำหรับการตรวจสอบประสิทธิภาพ เราสามารถแจ้งเตือนคุณหากเวลาเริ่มต้นของแอปเกินเกณฑ์ที่คุณกำหนดค่าไว้
- สำหรับ App Distribution เราสามารถแจ้งเตือนคุณหากผู้ทดสอบของคุณลงทะเบียนอุปกรณ์ iOS ใหม่
ขึ้นอยู่กับการแจ้งเตือนและ ค่ากำหนดที่กำหนดโดยสมาชิกโครงการ Firebase จะแสดงการแจ้งเตือนประเภทนี้ในคอนโซล Firebase หรือส่งทางอีเมล
หน้านี้อธิบายวิธีการเขียนฟังก์ชันที่จัดการเหตุการณ์แจ้งเตือน
มันทำงานอย่างไร?
คุณสามารถทริกเกอร์ฟังก์ชันเพื่อตอบสนองต่อเหตุการณ์การแจ้งเตือนที่ส่งโดยแหล่งที่มาเหล่านี้:
- จัดการเหตุการณ์การแจ้งเตือน App Distribution
- จัดการเหตุการณ์การแจ้งเตือน Crashlytics
- จัดการเหตุการณ์การแจ้งเตือนการตรวจสอบประสิทธิภาพ
ในวงจรชีวิตทั่วไป ฟังก์ชันที่ทริกเกอร์โดยเหตุการณ์การแจ้งเตือนจะดำเนินการดังต่อไปนี้:
- ฟัง/รอประเภทการแจ้งเตือนเฉพาะที่จะปล่อยออกมาจาก Firebase
- ทริกเกอร์เมื่อมีการส่งการแจ้งเตือน และรับเพย์โหลดเหตุการณ์ซึ่งมีข้อมูลเฉพาะเกี่ยวกับเหตุการณ์
- เรียกใช้โค้ดของฟังก์ชันเพื่อจัดการกับเพย์โหลดของเหตุการณ์
ทริกเกอร์ฟังก์ชั่นในเหตุการณ์แจ้งเตือน
ใช้แพ็กเกจย่อย firebase-functions/v2/alerts
เพื่อเขียนฟังก์ชันที่จัดการเหตุการณ์การแจ้งเตือน ตัวอย่างเฉพาะผลิตภัณฑ์ต่อไปนี้แสดงให้เห็นถึงเวิร์กโฟลว์ที่ฟังก์ชันใช้เว็บฮุคเพื่อโพสต์ข้อความไปยังช่องทาง Discord เมื่อมีการส่งการแจ้งเตือนสำหรับผลิตภัณฑ์นั้นจาก Firebase
จัดการเหตุการณ์การแจ้งเตือน Crashlytics
สำหรับตัวอย่าง Crashlytics ต่อไปนี้ คุณใช้ Cloud Functions สำหรับ Firebase เพื่อจัดการกับเหตุการณ์แจ้งเตือนเกี่ยวกับปัญหาการหยุดทำงานร้ายแรงครั้งใหม่ ฟังก์ชันนี้จะโพสต์ข้อมูลการแจ้งเตือนในข้อความไปยังช่อง Discord
ฟังก์ชันรับฟังเหตุการณ์ onNewFatalIssuePublished
:
exports.postfatalissuetodiscord = onNewFatalIssuePublished(async (event) => {
จากนั้นฟังก์ชันจะแยกวิเคราะห์วัตถุเหตุการณ์ที่ส่งคืน สร้างข้อความเพื่อโพสต์ในช่อง Discord:
// construct a helpful message to send to Discord const appId = event.appId; const {id, title, subtitle, appVersion} = event.data.payload.issue; const message = ` 🚨 New fatal issue for ${appId} in version ${appVersion} 🚨 **${title}** ${subtitle} id: \`${id}\` `;
สุดท้าย ฟังก์ชันจะส่งข้อความที่สร้างขึ้นไปยัง Discord:
const response = await postMessageToDiscord("Crashlytics Bot", message); if (response.ok) { logger.info( `Posted fatal Crashlytics alert ${id} for ${appId} to Discord`, event.data.payload, ); } else { throw new Error(response.error); }
หากต้องการเรียนรู้เกี่ยวกับเหตุการณ์การแจ้งเตือน Crashlytics ทั้งหมดที่คุณสามารถบันทึกได้ ให้ไปที่เอกสารอ้างอิงสำหรับ การแจ้งเตือน Crashlytics
จัดการเหตุการณ์การแจ้งเตือนการตรวจสอบประสิทธิภาพ
ตัวอย่างในส่วนนี้แสดงวิธีเขียนฟังก์ชันสำหรับการแจ้งเตือนเกณฑ์ประสิทธิภาพ
ในตัวอย่างนี้ ฟังก์ชัน onThresholdAlertPublished
จะส่งออกฟังก์ชันคลาวด์ที่รับฟังเหตุการณ์ประเภท PerformanceEvent<ThresholdAlertPayload>
ซึ่งจะถูกส่งทุกครั้งที่มีการแจ้งเตือนเกณฑ์ประสิทธิภาพการทำงาน:
exports.postperformancealerttodiscord = onThresholdAlertPublished( async (event) => {
จากนั้น ฟังก์ชันจะแยกวิเคราะห์อ็อบเจกต์เหตุการณ์ที่ส่งคืน แยกวิเคราะห์ข้อมูลที่เป็นประโยชน์จากเพย์โหลดเหตุการณ์ และสร้างข้อความเพื่อโพสต์ในช่อง Discord:
// construct a helpful message to send to Discord const appId = event.appId; const { eventName, metricType, eventType, numSamples, thresholdValue, thresholdUnit, conditionPercentile, appVersion, violationValue, violationUnit, investigateUri, } = event.data.payload; const message = ` ⚠️ Performance Alert for ${metricType} of ${eventType}: **${eventName}** ⚠️ App id: ${appId} Alert condition: ${thresholdValue} ${thresholdUnit} Percentile (if applicable): ${conditionPercentile} App version (if applicable): ${appVersion} Violation: ${violationValue} ${violationUnit} Number of samples checked: ${numSamples} **Investigate more:** ${investigateUri} `;
สุดท้าย ฟังก์ชันจะส่งข้อความที่สร้างขึ้นไปยัง Discord ผ่านคำขอ HTTP:
const response = await postMessageToDiscord( "Firebase Performance Bot", message); if (response.ok) { logger.info( `Posted Firebase Performance alert ${eventName} to Discord`, event.data.payload, ); } else { throw new Error(response.error); }
หากต้องการเรียนรู้เกี่ยวกับเหตุการณ์การแจ้งเตือนประสิทธิภาพทั้งหมดที่คุณสามารถบันทึกได้ ให้ไปที่เอกสารอ้างอิงสำหรับ การแจ้งเตือนการตรวจสอบประสิทธิภาพ
จัดการเหตุการณ์การแจ้งเตือน App Distribution
ตัวอย่างในส่วนนี้แสดงวิธีเขียนฟังก์ชันสำหรับการแจ้งเตือนอุปกรณ์ iOS สำหรับผู้ทดสอบใหม่
ในตัวอย่างนี้ ฟังก์ชัน onNewTesterIosDevicePublished
ส่งออกฟังก์ชันคลาวด์ที่รับฟังเหตุการณ์ประเภท AppDistributionEvent<NewTesterDevicePayload>
ซึ่งจะถูกส่งทุกครั้งที่ผู้ทดสอบลงทะเบียนอุปกรณ์ iOS ใหม่ เมื่อลงทะเบียนอุปกรณ์ iOS ใหม่แล้ว คุณต้องอัปเดตโปรไฟล์การจัดสรรของคุณด้วย UDID ของอุปกรณ์นั้น จากนั้นแจกจ่ายแอพอีกครั้ง
exports.postnewduuidtodiscord = onNewTesterIosDevicePublished(async (event) => {
จากนั้น ฟังก์ชันจะวิเคราะห์ข้อมูลที่ส่งคืน แยกวิเคราะห์ข้อมูลที่เป็นประโยชน์จากเพย์โหลดของเหตุการณ์ และสร้างข้อความเพื่อโพสต์ไปยังช่อง Discord:
// construct a helpful message to send to Discord const appId = event.appId; const { testerDeviceIdentifier, testerDeviceModelName, testerEmail, testerName, } = event.data.payload; const message = ` 📱 New iOS device registered by ${testerName} <${testerEmail}> for ${appId} UDID **${testerDeviceIdentifier}** for ${testerDeviceModelName} `;
สุดท้าย ฟังก์ชันจะส่งข้อความที่สร้างขึ้นไปยัง Discord ผ่านคำขอ HTTP:
const response = await postMessageToDiscord("AppDistribution Bot", message); if (response.ok) { logger.info( `Posted iOS device registration alert for ${testerEmail} to Discord`, ); } else { throw new Error(response.error); }
หากต้องการเรียนรู้เกี่ยวกับเหตุการณ์การแจ้งเตือน App Distribution ทั้งหมดที่คุณสามารถบันทึกได้ ให้ไปที่เอกสารอ้างอิงสำหรับ การแจ้งเตือน App Distribution
หากต้องการเรียนรู้วิธีใช้ฟังก์ชันที่ทริกเกอร์โดย การแจ้งเตือน Firebase ในแอปจาก App Distribution โปรดดู ส่งความคิดเห็นในแอปไปยัง Jira