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