আপনার Firebase Crashlytics ক্র্যাশ রিপোর্ট কাস্টমাইজ করুন

Crashlytics ড্যাশবোর্ডে, আপনি একটি সমস্যায় ক্লিক করতে পারেন এবং একটি বিস্তারিত ইভেন্ট রিপোর্ট পেতে পারেন। আপনার অ্যাপে কী ঘটছে এবং Crashlytics-এ রিপোর্ট করা ইভেন্টগুলির পরিস্থিতি আরও ভালভাবে বুঝতে সাহায্য করার জন্য আপনি সেই প্রতিবেদনগুলি কাস্টমাইজ করতে পারেন।

  • আপনার অ্যাপ Google Analytics-এর জন্য Firebase SDK ব্যবহার করলে স্বয়ংক্রিয়ভাবে ব্রেডক্রাম্ব লগ পান। এই লগগুলি আপনাকে আপনার অ্যাপে একটি Crashlytics-সংগৃহীত ইভেন্ট পর্যন্ত ব্যবহারকারীর ক্রিয়াকলাপের দৃশ্যমানতা দেয়।

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

কাস্টম কী যোগ করুন

কাস্টম কীগুলি আপনাকে আপনার অ্যাপের নির্দিষ্ট অবস্থা পেতে সাহায্য করে যা ক্র্যাশের দিকে নিয়ে যায়। আপনি আপনার ক্র্যাশ রিপোর্টের সাথে নির্বিচারে কী/মান জোড়া সংযুক্ত করতে পারেন, তারপর Firebase কনসোলে ক্র্যাশ রিপোর্টগুলি অনুসন্ধান এবং ফিল্টার করতে কাস্টম কীগুলি ব্যবহার করুন৷

  • Crashlytics ড্যাশবোর্ডে , আপনি একটি কাস্টম কী মেলে এমন সমস্যাগুলি অনুসন্ধান করতে পারেন৷
  • আপনি যখন কনসোলে একটি নির্দিষ্ট সমস্যা পর্যালোচনা করছেন, আপনি প্রতিটি ইভেন্টের জন্য সংশ্লিষ্ট কাস্টম কীগুলি দেখতে পারেন ( কী সাবট্যাব) এবং এমনকি কাস্টম কী (পৃষ্ঠার শীর্ষে ফিল্টার মেনু) দ্বারা ইভেন্টগুলি ফিল্টার করতে পারেন৷

কী/মান জোড়া সেট করতে setCustomValue পদ্ধতি ব্যবহার করুন। উদাহরণ স্বরূপ:

সুইফট

// Set int_key to 100.
Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key")

// Set str_key to "hello".
Crashlytics.crashlytics().setCustomValue("hello", forKey: "str_key")

উদ্দেশ্য গ

পূর্ণসংখ্যা, বুলিয়ান বা ফ্লোট সেট করার সময়, মানটিকে @( value ) হিসাবে বক্স করুন।

// Set int_key to 100.
[[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"];

// Set str_key to "hello".
[[FIRCrashlytics crashlytics] setCustomValue:@"hello" forKey:@"str_key"];

আপনি কী কল করে একটি বিদ্যমান কী-এর মান পরিবর্তন করতে পারেন এবং এটিকে একটি ভিন্ন মানতে সেট করতে পারেন। উদাহরণ স্বরূপ:

সুইফট

Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key")

// Set int_key to 50 from 100.
Crashlytics.crashlytics().setCustomValue(50, forKey: "int_key")

উদ্দেশ্য গ

[[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"];

// Set int_key to 50 from 100.
[[FIRCrashlytics crashlytics] setCustomValue:@(50) forKey:@"int_key"];

শুধুমাত্র পরামিতি হিসাবে NSD অভিধান সহ setCustomKeysAndValues ​​পদ্ধতি ব্যবহার করে বাল্কে কী/মান জোড়া যোগ করুন:

সুইফট

let keysAndValues = [
                 "string key" : "string value",
                 "string key 2" : "string value 2",
                 "boolean key" : true,
                 "boolean key 2" : false,
                 "float key" : 1.01,
                 "float key 2" : 2.02
                ] as [String : Any]

Crashlytics.crashlytics().setCustomKeysAndValues(keysAndValues)

উদ্দেশ্য গ

NSDictionary *keysAndValues =
    @{@"string key" : @"string value",
      @"string key 2" : @"string value 2",
      @"boolean key" : @(YES),
      @"boolean key 2" : @(NO),
      @"float key" : @(1.01),
      @"float key 2" : @(2.02)};

[[FIRCrashlytics crashlytics] setCustomKeysAndValues: keysAndValues];

কাস্টম লগ বার্তা যোগ করুন

ক্র্যাশের দিকে পরিচালিত ইভেন্টগুলির জন্য নিজেকে আরও প্রসঙ্গ দিতে, আপনি আপনার অ্যাপে কাস্টম ক্র্যাশলিটিক্স লগ যোগ করতে পারেন। Crashlytics লগগুলিকে আপনার ক্র্যাশ ডেটার সাথে সংযুক্ত করে এবং লগ ট্যাবের অধীনে Firebase কনসোলের Crashlytics পৃষ্ঠায় প্রদর্শন করে।

সুইফট

log() বা log(format:, arguments:) ব্যবহার করুন সমস্যাগুলি চিহ্নিত করতে সাহায্য করুন৷ আপনি যদি বার্তা সহ একটি দরকারী লগ আউটপুট পেতে চান, তাহলে আপনি যে বস্তুটি log() এ পাস করবেন সেটি অবশ্যই CustomStringConvertible সম্পত্তির সাথে সঙ্গতিপূর্ণ হবে। log() আপনি অবজেক্টের জন্য সংজ্ঞায়িত বিবরণ সম্পত্তি প্রদান করে। উদাহরণ স্বরূপ:

Crashlytics.crashlytics().log("Higgs-Boson detected! Bailing out…, \(attributesDict)")

.log(format:, arguments:) ফরম্যাট মান getVaList() কলিং থেকে ফিরে আসে। উদাহরণ স্বরূপ:

Crashlytics.crashlytics().log(format: "%@, %@", arguments: getVaList(["Higgs-Boson detected! Bailing out…", attributesDict]))

কিভাবে log() বা log(format:, arguments:) ব্যবহার করবেন সে সম্পর্কে আরো বিস্তারিত জানার জন্য, Crashlytics রেফারেন্স ডকুমেন্টেশন দেখুন।

উদ্দেশ্য গ

সমস্যা চিহ্নিত করতে সাহায্য করতে log বা logWithFormat ব্যবহার করুন। মনে রাখবেন যে আপনি যদি বার্তা সহ একটি দরকারী লগ আউটপুট পেতে চান তবে যে বস্তুটি আপনি যেকোনও পদ্ধতিতে পাস করবেন তা অবশ্যই description উদাহরণ সম্পত্তিকে ওভাররাইড করবে। উদাহরণ স্বরূপ:

[[FIRCrashlytics crashlytics] log:@"Simple string message"];

[[FIRCrashlytics crashlytics] logWithFormat:@"Higgs-Boson detected! Bailing out... %@", attributesDict];

[[FIRCrashlytics crashlytics] logWithFormat:@"Logging a variable argument list %@" arguments:va_list_arg];

কিভাবে log এবং logWithFormat ব্যবহার করতে হয় সে সম্পর্কে আরো বিস্তারিত জানার জন্য, Crashlytics রেফারেন্স ডকুমেন্টেশন পড়ুন।

ব্যবহারকারী শনাক্তকারী সেট করুন

একটি সমস্যা নির্ণয় করতে, আপনার ব্যবহারকারীদের মধ্যে কোনটি প্রদত্ত ক্র্যাশের সম্মুখীন হয়েছে তা জানা প্রায়ই সহায়ক। Crashlytics আপনার ক্র্যাশ রিপোর্টে ব্যবহারকারীদের বেনামে সনাক্ত করার একটি উপায় অন্তর্ভুক্ত করে।

আপনার রিপোর্টে ব্যবহারকারীর আইডি যোগ করতে, প্রতিটি ব্যবহারকারীকে একটি আইডি নম্বর, টোকেন বা হ্যাশ করা মান আকারে একটি অনন্য শনাক্তকারী বরাদ্দ করুন:

সুইফট

Crashlytics.crashlytics().setUserID("123456789")

উদ্দেশ্য গ

[[FIRCrashlytics crashlytics] setUserID:@"123456789"];

আপনি যদি এটি সেট করার পরে কখনও একটি ব্যবহারকারী শনাক্তকারী সাফ করতে চান, তাহলে মানটিকে একটি ফাঁকা স্ট্রিংয়ে পুনরায় সেট করুন। একটি ব্যবহারকারী শনাক্তকারী সাফ করা বিদ্যমান Crashlytics রেকর্ড মুছে ফেলা হয় না। আপনি যদি একটি ব্যবহারকারী আইডির সাথে যুক্ত রেকর্ড মুছে ফেলতে চান, Firebase সহায়তার সাথে যোগাযোগ করুন

অ-মারাত্মক ব্যতিক্রম রিপোর্ট করুন

আপনার অ্যাপের ক্র্যাশগুলি স্বয়ংক্রিয়ভাবে রিপোর্ট করার পাশাপাশি, Crashlytics আপনাকে অ-মারাত্মক ব্যতিক্রমগুলি রেকর্ড করতে দেয় এবং পরের বার আপনার অ্যাপ চালু হলে সেগুলি আপনাকে পাঠায়।

আপনি recordError পদ্ধতির সাথে NSError অবজেক্টগুলি রেকর্ড করে অ-মারাত্মক ব্যতিক্রমগুলি রেকর্ড করতে পারেন। recordError [NSThread callStackReturnAddresses] কল করে থ্রেডের কল স্ট্যাক ক্যাপচার করে।

সুইফট

Crashlytics.crashlytics().record(error: error)

উদ্দেশ্য গ

[[FIRCrashlytics crashlytics] recordError:error];

recordError পদ্ধতি ব্যবহার করার সময়, NSError স্ট্রাকচার এবং Crashlytics কীভাবে গ্রুপ ক্র্যাশ করতে ডেটা ব্যবহার করে তা বোঝা গুরুত্বপূর্ণ। recordError পদ্ধতির ভুল ব্যবহার অপ্রত্যাশিত আচরণের কারণ হতে পারে এবং Crashlytics আপনার অ্যাপের জন্য লগ করা ত্রুটির রিপোর্টিং সীমিত করতে পারে।

একটি NSError বস্তুর তিনটি আর্গুমেন্ট আছে:

  • domain: String
  • code: Int
  • userInfo: [AnyHashable : Any]? = nil

মারাত্মক ক্র্যাশের বিপরীতে, যা স্ট্যাক ট্রেস বিশ্লেষণের মাধ্যমে গোষ্ঠীভুক্ত করা হয়, লগ করা ত্রুটিগুলি domain এবং code দ্বারা গোষ্ঠীবদ্ধ হয়৷ এটি মারাত্মক ক্র্যাশ এবং লগ করা ত্রুটিগুলির মধ্যে একটি গুরুত্বপূর্ণ পার্থক্য। উদাহরণ স্বরূপ:

সুইফট

let userInfo = [
  NSLocalizedDescriptionKey: NSLocalizedString("The request failed.", comment: ""),
  NSLocalizedFailureReasonErrorKey: NSLocalizedString("The response returned a 404.", comment: ""),
  NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString("Does this page exist?", comment: ""),
  "ProductID": "123456",
  "View": "MainView"
]

let error = NSError.init(domain: NSCocoaErrorDomain,
                         code: -1001,
                         userInfo: userInfo)

উদ্দেশ্য গ

NSDictionary *userInfo = @{
  NSLocalizedDescriptionKey: NSLocalizedString(@"The request failed.", nil),
  NSLocalizedFailureReasonErrorKey: NSLocalizedString(@"The response returned a 404.", nil),
  NSLocalizedRecoverySuggestionErrorKey: NSLocalizedString(@"Does this page exist?", nil),
  @"ProductID": @"123456",
  @"View": @"MainView",
};

NSError *error = [NSError errorWithDomain:NSCocoaErrorDomain
                                     code:-1001
                                 userInfo:userInfo];

আপনি যখন উপরের ত্রুটিটি লগ করেন, এটি একটি নতুন সমস্যা তৈরি করে যা NSSomeErrorDomain এবং -1001 দ্বারা গোষ্ঠীভুক্ত হয়। একই ডোমেন এবং কোড মান ব্যবহার করে এমন অতিরিক্ত লগ করা ত্রুটিগুলি একই সমস্যার অধীনে গোষ্ঠীভুক্ত করা হয়েছে। userInfo অবজেক্টের মধ্যে থাকা ডেটা কী-মান জোড়ায় রূপান্তরিত হয় এবং একটি পৃথক সমস্যার মধ্যে কী/লগ বিভাগে প্রদর্শিত হয়।

লগ এবং কাস্টম কী

ক্র্যাশ রিপোর্টের মতো, আপনি NSError এ প্রসঙ্গ যোগ করতে লগ এবং কাস্টম কীগুলি এম্বেড করতে পারেন। যাইহোক, ক্র্যাশ বনাম লগ করা ত্রুটির সাথে কোন লগ সংযুক্ত করা হয় তার মধ্যে পার্থক্য রয়েছে। যখন একটি ক্র্যাশ ঘটে এবং অ্যাপটি পুনরায় চালু করা হয়, তখন ক্র্যাশলিটিক্স ডিস্ক থেকে যে লগগুলি পুনরুদ্ধার করে সেগুলি ক্র্যাশের সময় পর্যন্ত লেখা ছিল৷ আপনি যখন একটি NSError লগ করেন, তখন অ্যাপটি অবিলম্বে বন্ধ হয়ে যায় না। যেহেতু ক্র্যাশলিটিক্স শুধুমাত্র পরবর্তী অ্যাপ লঞ্চের সময় লগ করা ত্রুটির রিপোর্ট পাঠায় এবং ডিস্কে লগের জন্য বরাদ্দ করা স্থানের পরিমাণ সীমিত করতে হবে, তাই একটি NSError রেকর্ড করার পরে যথেষ্ট লগ করা সম্ভব যাতে Crashlytics পাঠানোর সময় সমস্ত প্রাসঙ্গিক লগগুলি ঘোরানো হয়। ডিভাইস থেকে রিপোর্ট। NSErrors লগ করার সময় এবং আপনার অ্যাপে লগ এবং কাস্টম কী ব্যবহার করার সময় এই ভারসাম্যটি মাথায় রাখুন।

কর্মক্ষমতা বিবেচনা

মনে রাখবেন যে একটি NSError লগ করা মোটামুটি ব্যয়বহুল হতে পারে। আপনি কল করার সময়, Crashlytics স্ট্যাক আনওয়াইন্ডিং নামক একটি প্রক্রিয়া ব্যবহার করে বর্তমান থ্রেডের কল স্ট্যাক ক্যাপচার করে। এই প্রক্রিয়াটি CPU এবং I/O নিবিড় হতে পারে, বিশেষত DWARF unwinding (arm64 এবং x86) সমর্থন করে এমন আর্কিটেকচারে। আনওয়াইন্ড সম্পূর্ণ হওয়ার পরে, তথ্য সিঙ্ক্রোনাসভাবে ডিস্কে লেখা হয়। পরবর্তী লাইন ক্র্যাশ হলে এটি ডেটা ক্ষতি প্রতিরোধ করে।

যদিও একটি পটভূমি থ্রেডে এই API কল করা নিরাপদ, মনে রাখবেন যে এই কলটি অন্য সারিতে প্রেরণ করা বর্তমান স্ট্যাক ট্রেসের প্রসঙ্গ হারিয়ে ফেলে।

NSE ব্যতিক্রম সম্পর্কে কি?

Crashlytics লগিং এবং NSException উদাহরণ সরাসরি রেকর্ড করার জন্য একটি সুবিধা অফার করে না। সাধারণভাবে বলতে গেলে, কোকো এবং কোকো টাচ এপিআই ব্যতিক্রম-নিরাপদ নয়। তার মানে @catch এর ব্যবহার আপনার প্রক্রিয়ায় খুব গুরুতর অনিচ্ছাকৃত পার্শ্ব-প্রতিক্রিয়া হতে পারে, এমনকি যখন চরম যত্নের সাথে ব্যবহার করা হয়। আপনার কোডে @catch স্টেটমেন্ট ব্যবহার করা উচিত নয়। অনুগ্রহ করে বিষয়টিতে অ্যাপলের ডকুমেন্টেশন পড়ুন।

স্ট্যাক ট্রেস কাস্টমাইজ করুন

যদি আপনার অ্যাপটি অ-নেটিভ পরিবেশে চলে (যেমন C++ বা ইউনিটি), তাহলে আপনি আপনার অ্যাপের নেটিভ এক্সেপশন ফরম্যাটে ক্র্যাশ মেটাডেটা রিপোর্ট করতে ব্যতিক্রম মডেল API ব্যবহার করতে পারেন। রিপোর্ট করা ব্যতিক্রমগুলি অ-প্রাণ হিসাবে চিহ্নিত করা হয়েছে।

সুইফট

var  ex = ExceptionModel(name:"FooException", reason:"There was a foo.")
ex.stackTrace = [
  StackFrame(symbol:"makeError", file:"handler.js", line:495),
  StackFrame(symbol:"then", file:"routes.js", line:102),
  StackFrame(symbol:"main", file:"app.js", line:12),
]

crashlytics.record(exceptionModel:ex)

উদ্দেশ্য গ

FIRExceptionModel *model =
    [FIRExceptionModel exceptionModelWithName:@"FooException" reason:@"There was a foo."];
model.stackTrace = @[
  [FIRStackFrame stackFrameWithSymbol:@"makeError" file:@"handler.js" line:495],
  [FIRStackFrame stackFrameWithSymbol:@"then" file:@"routes.js" line:102],
  [FIRStackFrame stackFrameWithSymbol:@"main" file:@"app.js" line:12],
];

[[FIRCrashlytics crashlytics] recordExceptionModel:model];

কাস্টম স্ট্যাক ফ্রেমগুলিকে শুধু ঠিকানা দিয়ে শুরু করা যেতে পারে:

সুইফট

var  ex = ExceptionModel.init(name:"FooException", reason:"There was a foo.")
ex.stackTrace = [
  StackFrame(address:0xfa12123),
  StackFrame(address:12412412),
  StackFrame(address:194129124),
]

crashlytics.record(exceptionModel:ex)

উদ্দেশ্য গ

FIRExceptionModel *model =
    [FIRExceptionModel exceptionModelWithName:@"FooException" reason:@"There was a foo."];
model.stackTrace = @[
  [FIRStackFrame stackFrameWithAddress:0xfa12123],
  [FIRStackFrame stackFrameWithAddress:12412412],
  [FIRStackFrame stackFrameWithAddress:194129124],
];


[[FIRCrashlytics crashlytics] recordExceptionModel:model];

ব্রেডক্রাম্ব লগ পান

ব্রেডক্রাম্ব লগগুলি আপনাকে ক্র্যাশ, অ-মারাত্মক বা ANR ইভেন্টের দিকে নিয়ে যাওয়ার জন্য আপনার অ্যাপের সাথে একজন ব্যবহারকারীর ইন্টারঅ্যাকশনগুলি সম্পর্কে আরও ভাল ধারণা দেয়। একটি সমস্যা পুনরুত্পাদন এবং ডিবাগ করার চেষ্টা করার সময় এই লগগুলি সহায়ক হতে পারে।

ব্রেডক্রাম্ব লগগুলি Google Analytics দ্বারা চালিত হয়, তাই ব্রেডক্রাম্ব লগগুলি পেতে, আপনাকে আপনার Firebase প্রকল্পের জন্য Google Analytics সক্ষম করতে হবে এবং আপনার অ্যাপে Google Analytics-এর জন্য Firebase SDK যোগ করতে হবে ৷ একবার এই প্রয়োজনীয়তাগুলি পূরণ হয়ে গেলে, আপনি যখন কোনও সমস্যার বিশদ বিবরণ দেখেন তখন লগ ট্যাবের মধ্যে একটি ইভেন্টের ডেটার সাথে ব্রেডক্রাম্ব লগগুলি স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হয়৷

অ্যানালিটিক্স SDK স্বয়ংক্রিয়ভাবে screen_view ইভেন্ট লগ করে যা ব্রেডক্রাম্ব লগগুলিকে ক্র্যাশ, নন-ফেটাল বা ANR ইভেন্টের আগে দেখা স্ক্রিনের তালিকা দেখাতে সক্ষম করে। একটি screen_view ব্রেডক্রাম্ব লগে একটি firebase_screen_class প্যারামিটার থাকে।

ব্রেডক্রাম্ব লগগুলি ইভেন্টের প্যারামিটার ডেটা সহ ব্যবহারকারীর সেশনের মধ্যে ম্যানুয়ালি লগ করা যেকোন কাস্টম ইভেন্টগুলির সাথেও পূর্ণ হয়৷ এই ডেটা ক্র্যাশ, অ-মারাত্মক, বা ANR ইভেন্ট পর্যন্ত ব্যবহারকারীর ক্রিয়াগুলির একটি সিরিজ দেখাতে সাহায্য করতে পারে।

মনে রাখবেন যে আপনি Google Analytics ডেটা সংগ্রহ এবং ব্যবহার নিয়ন্ত্রণ করতে পারেন, যার মধ্যে সেই ডেটা রয়েছে যা ব্রেডক্রাম্ব লগগুলিকে পপুলেট করে৷

অপ্ট-ইন রিপোর্টিং সক্ষম করুন

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

  1. আপনার Info.plist ফাইলে একটি নতুন কী যোগ করে স্বয়ংক্রিয় সংগ্রহ বন্ধ করুন:

    • কী: FirebaseCrashlyticsCollectionEnabled
    • মান: false
  2. রানটাইমে Crashlytics ডেটা সংগ্রহ ওভাররাইড কল করে নির্বাচিত ব্যবহারকারীদের জন্য সংগ্রহ সক্ষম করুন। আপনার অ্যাপের লঞ্চ জুড়ে ওভাররাইড মান বজায় থাকে যাতে Crashlytics স্বয়ংক্রিয়ভাবে রিপোর্ট সংগ্রহ করতে পারে।

    স্বয়ংক্রিয় ক্র্যাশ রিপোর্টিং থেকে অপ্ট আউট করতে, ওভাররাইড মান হিসাবে false পাস করুন। false সেট করা হলে, অ্যাপের পরবর্তী রান না হওয়া পর্যন্ত নতুন মান প্রযোজ্য হবে না।

    সুইফট

    Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)

    উদ্দেশ্য গ

    [[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:YES];

ক্র্যাশ ইনসাইট ডেটা পরিচালনা করুন

ক্র্যাশ ইনসাইট আপনাকে আপনার বেনামী স্ট্যাক ট্রেসগুলিকে অন্যান্য ফায়ারবেস অ্যাপের ট্রেসের সাথে তুলনা করে এবং আপনার সমস্যাটি একটি বৃহত্তর প্রবণতার অংশ কিনা তা আপনাকে জানিয়ে সমস্যার সমাধান করতে সহায়তা করে। অনেক সমস্যার জন্য, ক্র্যাশ ইনসাইট এমনকি আপনাকে ক্র্যাশ ডিবাগ করতে সহায়তা করার জন্য সংস্থান সরবরাহ করে।

ক্র্যাশ ইনসাইট সাধারণ স্থিতিশীলতার প্রবণতা সনাক্ত করতে সমষ্টিগত ক্র্যাশ ডেটা ব্যবহার করে। আপনি যদি আপনার অ্যাপের ডেটা শেয়ার না করতে চান, তাহলে Firebase কনসোলে আপনার Crashlytics সমস্যা তালিকার শীর্ষে থাকা ক্র্যাশ ইনসাইটস মেনু থেকে আপনি ক্র্যাশ ইনসাইটগুলি অপ্ট-আউট করতে পারেন৷