מופעלות של התראות Firebase

Firebase מספקת התראה עבור מגוון רחב של אירועי ניהול פרויקטים ואפליקציות. הנה כמה אירועים לדוגמה שבהם Firebase יכול לשלוח לך התראה מסוג זה:

  • עבור Crashlytics, אנו יכולים להתריע אם לאפליקציה שלך יש עלייה דרמטית בקריסות.
  • לניטור ביצועים, נוכל להתריע אם זמן ההפעלה של האפליקציה שלך חוצה את הסף שהוגדר.
  • עבור הפצת אפליקציות, נוכל להתריע אם אחד מהבודקים שלך רושם מכשיר iOS חדש.

בהתאם להתראה ולהעדפות שנקבעו על ידי חבר הפרויקט , Firebase מציג את סוגי ההתראות האלה במסוף Firebase או שולח אותן בדוא"ל.

עמוד זה מתאר כיצד לכתוב פונקציות המטפלות באירועי התראה.

איך זה עובד?

אתה יכול להפעיל פונקציות בתגובה לאירועי התראה הנפלטים ממקורות אלה:

במחזור חיים טיפוסי, פונקציה המופעלת על ידי אירוע התראה עושה את הדברים הבאים:

  1. מקשיב/ממתין לסוג התראה ספציפי שנפלט מ-Firebase.
  2. מופעל כאשר ההתראה נפלטה, ומקבל את מטען האירוע המכיל מידע ספציפי על האירוע.
  3. מפעיל את הקוד של הפונקציה שלך כדי לטפל במטען האירוע.

הפעל פונקציה באירועי התראה

השתמש בתת-חבילת firebase-functions/v2/alerts כדי לכתוב פונקציה שמטפלת באירועי התראות. הדוגמאות הספציפיות למוצר הבאות מדגימות זרימת עבודה שבה פונקציה משתמשת ב-webhook כדי לפרסם הודעה לערוץ Discord כאשר נפלטת התראה עבור אותו מוצר מ-Firebase.

טפל באירוע התראת Crashlytics

עבור הדוגמה הבאה של Crashlytics, אתה משתמש ב-Cloud Functions for 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}\`
`;

לבסוף, הפונקציה שולחת את ההודעה הבנויה לדיסקורד:

    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}
    `;

לבסוף, הפונקציה שולחת את ההודעה הבנויה לדיסקורד באמצעות בקשת 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);
        }

כדי ללמוד על כל אירועי התראת הביצועים שאתה יכול ללכוד, עבור אל תיעוד ההפניה עבור התראות ניטור ביצועים .

טפל באירוע התראה על הפצת אפליקציות

הדוגמה בסעיף זה מראה לך כיצד לכתוב פונקציה להתראות מכשירי 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}
`;

לבסוף, הפונקציה שולחת את ההודעה הבנויה לדיסקורד באמצעות בקשת 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);
    }

כדי ללמוד על כל אירועי ההתראות של הפצת אפליקציות שאתה יכול לצלם, עבור אל תיעוד ההפניה להתראות הפצת אפליקציות .

כדי ללמוד כיצד להשתמש בפונקציה המופעלת על ידי התראת Firebase בתוך האפליקציה מהפצת אפליקציות , ראה שליחת משוב בתוך האפליקציה אל Jira .