फायरबेस अलर्ट ट्रिगर

Firebase प्रोजेक्ट और ऐप्लिकेशन प्रबंधन ईवेंट की एक विस्तृत श्रृंखला के लिए अलर्ट प्रदान करता है। यहां कुछ उदाहरण ईवेंट दिए गए हैं जब Firebase आपको इस प्रकार का अलर्ट भेज सकता है:

  • Crashlytics के लिए, यदि आपके ऐप के क्रैश में नाटकीय वृद्धि हुई है, तो हम आपको सचेत कर सकते हैं।
  • प्रदर्शन निगरानी के लिए, यदि आपके ऐप का स्टार्ट-अप समय आपकी कॉन्फ़िगर की गई सीमा को पार कर जाता है, तो हम आपको सचेत कर सकते हैं।
  • ऐप डिस्ट्रीब्यूशन के लिए, यदि आपका कोई परीक्षक एक नया आईओएस डिवाइस पंजीकृत करता है तो हम आपको सतर्क कर सकते हैं।

प्रोजेक्ट सदस्य द्वारा निर्धारित अलर्ट और प्राथमिकताओं के आधार पर, फायरबेस इस प्रकार के अलर्ट को फायरबेस कंसोल में दिखाता है या उन्हें ईमेल के माध्यम से भेजता है।

यह पृष्ठ बताता है कि अलर्ट ईवेंट को संभालने वाले कार्यों को कैसे लिखना है।

यह कैसे काम करता है?

आप इन स्रोतों द्वारा उत्सर्जित अलर्ट ईवेंट के जवाब में फ़ंक्शन को ट्रिगर कर सकते हैं:

एक विशिष्ट जीवनचक्र में, अलर्ट ईवेंट द्वारा ट्रिगर किया गया फ़ंक्शन निम्न कार्य करता है:

  1. फायरबेस से निकलने वाले विशिष्ट अलर्ट प्रकार को सुनता/प्रतीक्षा करता है।
  2. अलर्ट जारी होने पर ट्रिगर करता है, और ईवेंट पेलोड प्राप्त करता है जिसमें ईवेंट के बारे में विशिष्ट जानकारी होती है।
  3. ईवेंट पेलोड को संभालने के लिए आपके फ़ंक्शन के कोड को आमंत्रित करता है।

अलर्ट इवेंट पर फ़ंक्शन को ट्रिगर करें

अलर्ट ईवेंट को हैंडल करने वाले फ़ंक्शन को लिखने के लिए firebase-functions/v2/alerts उपपैकेज का उपयोग करें। निम्नलिखित उत्पाद-विशिष्ट उदाहरण एक वर्कफ़्लो प्रदर्शित करते हैं जहाँ एक फ़ंक्शन एक वेबहुक का उपयोग करता है जो एक डिस्कॉर्ड चैनल पर एक संदेश पोस्ट करने के लिए होता है जब उस उत्पाद के लिए एक अलर्ट फायरबेस से उत्सर्जित होता है।

Crashlytics अलर्ट इवेंट को हैंडल करें

निम्नलिखित Crashlytics उदाहरण के लिए, आप एक नए घातक क्रैश मुद्दे की चेतावनी घटना को संभालने के लिए Firebase के लिए Cloud Functions का उपयोग करते हैं। यह फ़ंक्शन संदेश में चेतावनी सूचना को डिस्कॉर्ड चैनल पर पोस्ट करता है।

डिस्कॉर्ड में उदाहरण क्रैश सूचना

नई घातक दुर्घटना समस्या के लिए उदाहरण सूचना

समारोह onNewFatalIssuePublished घटना को सुनता है:

exports.postfatalissuetodiscord = onNewFatalIssuePublished(async (event) => {

फ़ंक्शन तब लौटाई गई ईवेंट ऑब्जेक्ट को पार्स करता है, जो कि डिस्कॉर्ड चैनल पर पोस्ट करने के लिए एक संदेश का निर्माण करता है:

  // 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) => {

फ़ंक्शन तब लौटाई गई ईवेंट ऑब्जेक्ट को पार्स करता है, ईवेंट पेलोड से उपयोगी जानकारी को पार्स करता है और डिस्कॉर्ड चैनल पर पोस्ट करने के लिए एक संदेश बनाता है:

      // 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 डिवाइस पंजीकृत करने पर भेजा जाता है। जब कोई नया आईओएस डिवाइस पंजीकृत होता है, तो आपको उस डिवाइस के यूडीआईडी ​​​​के साथ अपनी प्रोविजनिंग प्रोफाइल को अपडेट करना होगा और फिर ऐप को पुनर्वितरित करना होगा।

exports.postnewduuidtodiscord = onNewTesterIosDevicePublished(async (event) => {

फ़ंक्शन तब लौटा हुआ पार्स करता है, ईवेंट पेलोड से उपयोगी जानकारी पार्स करता है और डिस्कॉर्ड चैनल पर पोस्ट करने के लिए एक संदेश बनाता है:

  // 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);
    }

उन सभी ऐप वितरण अलर्ट ईवेंट के बारे में जानने के लिए जिन्हें आप कैप्चर कर सकते हैं, ऐप वितरण अलर्ट के संदर्भ दस्तावेज़ पर जाएँ।

ऐप डिस्ट्रीब्यूशन से इन-ऐप फीडबैक फायरबेस अलर्ट द्वारा ट्रिगर किए गए फ़ंक्शन का उपयोग करने का तरीका जानने के लिए, जीरा को इन-ऐप फ़ीडबैक भेजें देखें।