Firebase Alerts فعال می شود

Firebase برای طیف گسترده ای از رویدادهای مدیریت پروژه و برنامه هشدار می دهد. در اینجا چند نمونه از رویدادها برای زمانی که Firebase می تواند این نوع هشدار را برای شما ارسال کند آورده شده است:

  • برای Crashlytics، اگر برنامه شما افزایش چشمگیری در خرابی‌ها داشته باشد، می‌توانیم به شما هشدار دهیم.
  • برای نظارت بر عملکرد، اگر زمان راه‌اندازی برنامه شما از آستانه پیکربندی‌شده شما عبور کند، می‌توانیم به شما هشدار دهیم.
  • برای توزیع برنامه، اگر یکی از آزمایش‌کنندگان دستگاه iOS جدیدی را ثبت کرد، می‌توانیم به شما هشدار دهیم.

بسته به هشدار و تنظیمات برگزیده تعیین شده توسط عضو پروژه ، Firebase این نوع هشدارها را در کنسول Firebase نشان می دهد یا آنها را از طریق ایمیل ارسال می کند.

در این صفحه نحوه نوشتن توابعی که رویدادهای هشدار را مدیریت می کنند توضیح می دهد.

چگونه کار می کند؟

می‌توانید عملکردها را در پاسخ به رویدادهای هشدار منتشر شده توسط این منابع فعال کنید:

در یک چرخه عمر معمولی، یک تابع فعال شده توسط یک رویداد هشدار، موارد زیر را انجام می دهد:

  1. گوش می دهد/منتظر می شود تا یک نوع هشدار خاص از Firebase منتشر شود.
  2. هنگامی که هشدار ارسال می شود، فعال می شود و بار رویداد را دریافت می کند که حاوی اطلاعات خاصی در مورد رویداد است.
  3. کد تابع شما را برای مدیریت بار رویداد فراخوانی می کند.

فعال کردن یک تابع در رویدادهای هشدار

از بسته فرعی firebase-functions/v2/alerts برای نوشتن تابعی استفاده کنید که رویدادهای هشدار را مدیریت می کند. مثال‌های ویژه محصول زیر یک گردش کار را نشان می‌دهند که در آن یک تابع از یک هوک برای ارسال پیام به کانال Discord استفاده می‌کند، زمانی که یک هشدار برای آن محصول از Firebase منتشر می‌شود.

یک رویداد هشدار Crashlytics را مدیریت کنید

برای مثال Crashlytics زیر، از Cloud Functions برای Firebase برای رسیدگی به یک رویداد هشدار درباره یک مشکل تصادف مرگبار جدید استفاده می‌کنید. این تابع اطلاعات هشدار را در یک پیام به کانال Discord ارسال می کند.

مثالی از اعلان خرابی در 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}
    `;

در نهایت، تابع پیام ساخته شده را از طریق یک درخواست HTTP به Discord می فرستد:

        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 به Discord می فرستد:

    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 بازخورد درون برنامه ای از App Distribution فعال می شود، به ارسال بازخورد درون برنامه به Jira مراجعه کنید.