আপনার Crashlytics ইমপ্লিমেন্টেশন (ওয়েব) পরীক্ষা করুন

প্ল্যাটফর্ম বেছে নিন: iOS+ Android ওয়েব Flutter Unity


আপনি শুরু করার নির্দেশিকা অনুসরণ করার পরেও Crashlytics ড্যাশবোর্ডে ক্র্যাশ দেখতে না পেলে, এই নির্দেশিকা ব্যবহার করুন।

আপনার ইমপ্লিমেন্টেশন পরীক্ষা করতে ক্র্যাশ ফোর্স করা

  1. আপনার অ্যাপে কোড যোগ করুন যা আপনি টেস্ট ক্র্যাশ করতে ব্যবহার করতে পারেন।

    আপনার React, Next.js বা Angular অ্যাপে একটি টেস্ট বোতাম বা রুট ট্রিগার যোগ করুন যা ক্লিক করলে রানটাইম সমস্যা দেখায়:

    // Trigger an unhandled exception on button click or route load
    function handleTestCrash() {
      throw new Error("Crashlytics Web SDK Test Unhandled Error!");
    }
    

    আপনি যদি <FirebaseCrashlytics> (React বা Next.js), provideCrashlytics (Angular) বা <CrashlyticsRoutes> (React Router)-এর মাধ্যমে অটোমেটিক সমস্যা ক্যাপচার করার সুবিধা কনফিগার করে থাকেন, তাহলে এই সমস্যাটি থ্রো করলে অটোমেটিক ব্যতিক্রম ক্যাপচার করে এবং আপলোড করার জন্য শিডিউল করে।

  2. আপনার অ্যাপ তৈরি করে রান করুন, তারপর টেস্ট এরর ট্রিগার করুন যাতে আপনার অ্যাপ Firebase-এ প্রথম ক্র্যাশ রিপোর্ট পাঠায়।

  3. Firebase কনসোলে, DevOps ও এনগেজমেন্ট > Crashlytics ড্যাশবোর্ড বিকল্পে গিয়ে আপনার টেস্ট ক্র্যাশ রিপোর্ট চেক করুন:

    1. পৃষ্ঠার সবচেয়ে উপরে ড্রপ-ডাউন সিলেক্টর থেকে আপনার ওয়েব অ্যাপ বেছে নিন।

    2. পৃষ্ঠাটি রিফ্রেশ করুন। কয়েক মিনিটের মধ্যে সমস্যা টেবিলে আপনার টেস্ট ব্যতিক্রম দেখা যাবে।

আপনি কনসোল রিফ্রেশ করার পরেও যদি পাঁচ থেকে দশ মিনিট পরে টেস্ট ক্র্যাশ দেখতে না পান, তাহলে আপনার সেট-আপের সমস্যা সমাধান করার বিষয়ে পরবর্তী বিভাগটি দেখুন।

আপনার সেট-আপ সংক্রান্ত সমস্যার সমাধান করা

আপনি যদি টেস্ট ক্র্যাশ ট্রিগার করেন এবং পাঁচ থেকে দশ মিনিট পরেও Crashlytics ড্যাশবোর্ডে রিপোর্ট দেখতে না পান, তাহলে সেট-আপ ফ্লো আবার চালানোর চেষ্টা করুন অথবা কনসোলে নিম্নলিখিত প্রোজেক্ট কনফিগারেশন যাচাই করুন:

  • Crashlytics সেট-আপ ফ্লো আবার রান করুন: আপনি নিরাপদে Firebase CLI সেট-আপ কমান্ড (firebase crashlytics:setup) আবার রান করতে পারেন অথবা Firebase কনসোলে সেট-আপ সম্পূর্ণ করতে পারেন, যেমনটি শুরু করার নির্দেশিকার ১ নম্বর ধাপে বর্ণনা করা হয়েছে। সেট-আপ আবার রান করলে, কোনও API বাদ পড়ে গেলে তা অটোমেটিক চালু হয়ে যায় এবং firebase-telemetry Cloud Logging বাকেট ও রাউটিং সিঙ্ক মেরামত করে।

  • বিলিং ও IAM অনুমতি চেক করুন: সেট-আপের ধাপগুলি রান করার সময় আপনার Firebase প্রোজেক্ট যখন ব্যবহার করবেন তখন পেমেন্ট করুন Blaze প্রাইসিং প্ল্যানে আছে কিনা এবং প্রোজেক্টে আপনার অ্যাকাউন্টের মালিক হিসেবে অনুমতি আছে কিনা তা ভাল করে দেখে নিন।

  • firebasetelemetry.googleapis.com API কী সংক্রান্ত বিধিনিষেধ যাচাই করুন: Google Cloud কনসোলের ক্রেডেনশিয়াল পৃষ্ঠায়, আপনার firebaseConfig অবজেক্টে (যেমন, Browser key (auto created by Firebase)) কনফিগার করা API কী বেছে নিন। কী-তে API সংক্রান্ত বিধিনিষেধ চালু করা থাকলে, অনুমোদিত API-এর তালিকায় Firebase Telemetry API (firebasetelemetry.googleapis.com) অন্তর্ভুক্ত করা আছে কিনা তা যাচাই করুন। কোনও সীমাবদ্ধ API কী থেকে এই টার্গেট বাদ পড়লে, আপনার ব্রাউজার কনসোলে HTTP 403 (নিষিদ্ধ) সমস্যা সহ নেটওয়ার্ক আপলোড অনুরোধ ব্যর্থ হয়।

  • চালু করা Google Cloud API চেক করুন: Google Cloud কনসোলের চালু করা API ও পরিষেবা পৃষ্ঠা থেকে, আপনার প্রোজেক্টের জন্য Firebase Telemetry API (firebasetelemetry.googleapis.com), Firebase Telemetry Admin API (firebasetelemetryadmin.googleapis.com), Cloud Logging API (logging.googleapis.com) এবং Cloud Storage (storage.googleapis.com) চালু করা আছে কিনা তা যাচাই করুন।

  • লগিং বাকেটে লগ অ্যানালিসিস যাচাই করুন: Google Cloud কনসোলের লগ স্টোরেজ পৃষ্ঠায়, firebase-telemetry বাকেট (global লোকেশন) আছে কিনা এবং তাতে লগ অ্যানালিসিস চালু আছে কিনা তা যাচাই করুন এবং লগ রাউটার পৃষ্ঠা চেক করে firebase-telemetry-routing সিঙ্ক আছে কিনা তা কনফার্ম করুন।

ম্যানুয়ালি টেস্ট এক্সেপশন ক্যাপচার ও ফ্ল্যাশ করুন

আপনি যদি মেমরি ব্যাচিং বা পৃষ্ঠা আনলোড করার জন্য অপেক্ষা না করে অবিলম্বে এন্ড-টু-এন্ড ট্রান্সমিশন যাচাই করতে চান, তাহলে flush-এর সাথে recordError ব্যবহার করুন:

import { recordError, flush, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase'; // Shared initialization script

const crashlytics = getCrashlytics(app);

async function triggerImmediateTestCrash() {
  const error = new Error("Crashlytics Web SDK Test Handled Error!");
  // Capture the error with immediate priority and custom diagnostic metadata
  recordError(crashlytics, error, {
    priority: 'IMMEDIATE',
    testEvent: true,
    environment: 'staging_verification'
  });
  // Force an immediate upload before the browser terminates or reloads
  await flush(crashlytics);
  console.log("Test error flushed to Crashlytics successfully.");
}

পরবর্তী ধাপ

  • পড়ার যোগ্য ক্র্যাশ রিপোর্ট পান — অটোমেটিক সোর্স ম্যাপ (.js.map) আপলোড করার সুবিধা সেট-আপ করুন যাতে আপনার প্রোডাকশন স্ট্যাক ট্রেস আসল ফাইলের নাম ও লাইন নম্বর দেখায়।

  • ক্র্যাশ রিপোর্ট কাস্টমাইজ করা — কীভাবে হ্যান্ডেল করা ব্যতিক্রম রিপোর্ট করতে হয়, কাস্টম কী যোগ করতে হয়, টেলিমেট্রি রেকর্ড ফোর্স ফ্লাশ করতে হয় এবং স্যাম্পলিং কনফিগার করতে হয় তা জানুন।