ফায়ারবেস সতর্কতা ট্রিগার

ফায়ারবেস বিস্তৃত প্রজেক্ট এবং অ্যাপ ম্যানেজমেন্ট ইভেন্টের জন্য সতর্কতা প্রদান করে। Firebase কখন আপনাকে এই ধরনের সতর্কতা পাঠাতে পারে তার জন্য এখানে কয়েকটি উদাহরণ দেওয়া হল:

  • Crashlytics এর জন্য, আপনার অ্যাপের ক্র্যাশের সংখ্যা নাটকীয়ভাবে বেড়ে গেলে আমরা আপনাকে সতর্ক করতে পারি।
  • Performance Monitoring জন্য, আপনার অ্যাপের স্টার্ট-আপ সময় আপনার কনফিগার করা থ্রেশহোল্ড অতিক্রম করলে আমরা আপনাকে সতর্ক করতে পারি।
  • App Distribution জন্য, আপনার পরীক্ষকদের একজন নতুন iOS ডিভাইস নিবন্ধন করলে আমরা আপনাকে সতর্ক করতে পারি।

সতর্কতা এবং প্রকল্প সদস্য দ্বারা সেট করা পছন্দের উপর নির্ভর করে, Firebase Firebase কনসোলে এই ধরনের সতর্কতা দেখায় বা ইমেলের মাধ্যমে পাঠায়।

এই পৃষ্ঠাটি বর্ণনা করে যে কীভাবে Cloud Functions for Firebase ফাংশন লিখতে হয় যা সতর্কতা ইভেন্টগুলি পরিচালনা করে।

এটা কিভাবে কাজ করে?

আপনি এই উত্সগুলি দ্বারা নির্গত সতর্কতা ইভেন্টগুলির প্রতিক্রিয়া হিসাবে ফাংশনগুলি ট্রিগার করতে পারেন:

একটি সাধারণ জীবনচক্রে, একটি সতর্কতা ইভেন্ট দ্বারা ট্রিগার করা একটি ফাংশন নিম্নলিখিতগুলি করে:

  1. ফায়ারবেস থেকে নির্গত একটি নির্দিষ্ট সতর্কতার প্রকারের জন্য শোনে/অপেক্ষা করে।
  2. যখন সতর্কতা নির্গত হয় তখন ট্রিগার করে এবং ইভেন্ট পেলোড গ্রহণ করে যাতে ইভেন্ট সম্পর্কে নির্দিষ্ট তথ্য থাকে।
  3. ইভেন্ট পেলোড পরিচালনা করতে আপনার ফাংশনের কোড আহ্বান করে।

সতর্কতা ইভেন্টে একটি ফাংশন ট্রিগার করুন

সতর্কতা ইভেন্টগুলি পরিচালনা করে এমন একটি ফাংশন লিখতে firebase-functions/v2/alerts সাবপ্যাকেজ ব্যবহার করুন। নিম্নলিখিত পণ্য-নির্দিষ্ট উদাহরণগুলি একটি কার্যপ্রবাহ প্রদর্শন করে যেখানে একটি ফাংশন একটি ওয়েবহুক ব্যবহার করে একটি ডিসকর্ড চ্যানেলে একটি বার্তা পোস্ট করার জন্য যখন সেই পণ্যের জন্য একটি সতর্কতা Firebase থেকে নির্গত হয়।

একটি Crashlytics সতর্কতা ইভেন্ট পরিচালনা করুন

নিম্নলিখিত Crashlytics উদাহরণের জন্য, আপনি একটি নতুন মারাত্মক ক্র্যাশ সমস্যার একটি সতর্কতা ইভেন্ট পরিচালনা করতে Cloud Functions for Firebase ব্যবহার করেন। এই ফাংশনটি একটি ডিসকর্ড চ্যানেলে একটি বার্তায় সতর্কতার তথ্য পোস্ট করে।

ডিসকর্ডে ক্র্যাশ বিজ্ঞপ্তির উদাহরণ

একটি নতুন মারাত্মক ক্র্যাশ সমস্যার উদাহরণ বিজ্ঞপ্তি৷

ফায়ারবেস একটি নতুন মারাত্মক সমস্যা প্রকাশ করার সাথে সম্পর্কিত ইভেন্টের জন্য ফাংশনটি শোনে:

Node.js

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

পাইথন

@crashlytics_fn.on_new_fatal_issue_published(secrets=["DISCORD_WEBHOOK_URL"])
def post_fatal_issue_to_discord(event: crashlytics_fn.CrashlyticsNewFatalIssueEvent) -> None:
    """Publishes a message to Discord whenever a new Crashlytics fatal issue occurs."""

ফাংশনটি তারপরে ফিরে আসা ইভেন্ট অবজেক্টকে পার্স করে, ইভেন্ট পেলোড থেকে দরকারী তথ্য পার্স করে এবং ডিসকর্ড চ্যানেলে পোস্ট করার জন্য একটি বার্তা তৈরি করে:

Node.js

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

পাইথন

    # Construct a helpful message to send to Discord.
    app_id = event.app_id
    issue = event.data.payload.issue
    message = f"""
🚨 New fatal issue for {app_id} in version {issue.app_version} 🚨

# {issue.title}

{issue.subtitle}

ID: `{issue.id}`
""".strip()

অবশেষে, ফাংশনটি একটি HTTP অনুরোধের মাধ্যমে ডিসকর্ডে নির্মিত বার্তা পাঠায়:

Node.js

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

পাইথন

response = post_message_to_discord("Crashlytics Bot", message, DISCORD_WEBHOOK_URL.value)
if response.ok:
    print(f"Posted fatal Crashlytics alert {issue.id} for {app_id} to Discord.")
    pprint.pp(event.data.payload)
else:
    response.raise_for_status()

আপনি ক্যাপচার করতে পারেন এমন সমস্ত Crashlytics সতর্কতা ইভেন্ট সম্পর্কে জানতে, Crashlytics সতর্কতার জন্য রেফারেন্স ডকুমেন্টেশনে যান।

একটি Performance Monitoring সতর্কতা ইভেন্ট পরিচালনা করুন

এই উদাহরণটি এমন একটি ফাংশন রপ্তানি করে যা কর্মক্ষমতা থ্রেশহোল্ড সতর্কতা ইভেন্টগুলির জন্য শোনে:

Node.js

exports.postperformancealerttodiscord = onThresholdAlertPublished(
    async (event) => {

পাইথন

@performance_fn.on_threshold_alert_published(secrets=["DISCORD_WEBHOOK_URL"])
def post_performance_alert_to_discord(event: performance_fn.PerformanceThresholdAlertEvent) -> None:
    """Publishes a message to Discord whenever a performance threshold alert is fired."""

ফাংশনটি তারপরে ফিরে আসা ইভেন্ট অবজেক্টকে পার্স করে, ইভেন্ট পেলোড থেকে দরকারী তথ্য পার্স করে এবং ডিসকর্ড চ্যানেলে পোস্ট করার জন্য একটি বার্তা তৈরি করে:

Node.js

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

পাইথন

    # Construct a helpful message to send to Discord.
    app_id = event.app_id
    perf = event.data.payload
    message = f"""
⚠️ Performance Alert for {perf.metric_type} of {perf.event_type}: **{perf.event_name}** ⚠️

App ID: {app_id}
Alert condition: {perf.threshold_value} {perf.threshold_unit}
Percentile (if applicable): {perf.condition_percentile}
App version (if applicable): {perf.app_version}

Violation: {perf.violation_value} {perf.violation_unit}
Number of samples checked: {perf.num_samples}

**Investigate more:** {perf.investigate_uri}
""".strip()

অবশেষে, ফাংশনটি একটি HTTP অনুরোধের মাধ্যমে ডিসকর্ডে নির্মিত বার্তা পাঠায়:

Node.js

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

পাইথন

response = post_message_to_discord("App Performance Bot", message,
                                   DISCORD_WEBHOOK_URL.value)
if response.ok:
    print(f"Posted Firebase Performance alert {perf.event_name} to Discord.")
    pprint.pp(event.data.payload)
else:
    response.raise_for_status()

আপনি ক্যাপচার করতে পারেন এমন সমস্ত কর্মক্ষমতা সতর্কতা ইভেন্ট সম্পর্কে জানতে, Performance Monitoring সতর্কতার জন্য রেফারেন্স ডকুমেন্টেশনে যান।

একটি App Distribution সতর্কতা ইভেন্ট পরিচালনা করুন

এই বিভাগে উদাহরণ আপনাকে দেখায় কিভাবে নতুন পরীক্ষক iOS ডিভাইস সতর্কতার জন্য একটি ফাংশন লিখতে হয়।

এই উদাহরণে, ফাংশনটি এমন ইভেন্টগুলির জন্য শোনে যা প্রতিবার যখন একজন পরীক্ষক একটি নতুন iOS ডিভাইস নিবন্ধন করে তখন পাঠানো হয়। যখন একটি নতুন iOS ডিভাইস নিবন্ধিত হয়, তখন আপনাকে সেই ডিভাইসের UDID দিয়ে আপনার প্রভিশনিং প্রোফাইল আপডেট করতে হবে এবং তারপরে অ্যাপটি পুনরায় বিতরণ করতে হবে।

Node.js

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

পাইথন

@app_distribution_fn.on_new_tester_ios_device_published(secrets=["DISCORD_WEBHOOK_URL"])
def post_new_udid_to_discord(event: app_distribution_fn.NewTesterDeviceEvent) -> None:
    """Publishes a message to Discord whenever someone registers a new iOS test device."""

ফাংশনটি তারপরে ফিরে আসা বস্তুটিকে পার্স করে, ইভেন্ট পেলোড থেকে দরকারী তথ্য পার্স করে এবং ডিসকর্ড চ্যানেলে পোস্ট করার জন্য একটি বার্তা তৈরি করে:

Node.js

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

পাইথন

    # Construct a helpful message to send to Discord.
    app_id = event.app_id
    app_dist = event.data.payload
    message = f"""
📱 New iOS device registered by {app_dist.tester_name} <{app_dist.tester_email}> for {app_id}

UDID **{app_dist.tester_device_identifier}** for {app_dist.tester_device_model_name}
""".strip()

অবশেষে, ফাংশনটি একটি HTTP অনুরোধের মাধ্যমে ডিসকর্ডে নির্মিত বার্তা পাঠায়:

Node.js

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

পাইথন

response = post_message_to_discord("App Distro Bot", message, DISCORD_WEBHOOK_URL.value)
if response.ok:
    print(f"Posted iOS device registration alert for {app_dist.tester_email} to Discord.")
    pprint.pp(event.data.payload)
else:
    response.raise_for_status()

আপনি ক্যাপচার করতে পারেন এমন সমস্ত App Distribution সতর্কতা ইভেন্ট সম্পর্কে জানতে, App Distribution সতর্কতার জন্য রেফারেন্স ডকুমেন্টেশনে যান।

App Distribution থেকে একটি ইন-অ্যাপ প্রতিক্রিয়া ফায়ারবেস সতর্কতা দ্বারা ট্রিগার করা একটি ফাংশন কীভাবে ব্যবহার করবেন তা শিখতে, জিরা-তে অ্যাপ-মধ্যস্থ প্রতিক্রিয়া পাঠান দেখুন।