| প্ল্যাটফর্ম বেছে নিন: | iOS+ Android Flutter Unity |
আপনি কোনও সমস্যার উপর ক্লিক করে Firebase কনসোলের DevOps ও এনগেজমেন্ট > Crashlytics ড্যাশবোর্ড থেকে ইভেন্টের বিস্তারিত রিপোর্ট পেতে পারেন। আপনার অ্যাপে কী ঘটছে এবং Crashlytics-এ রিপোর্ট করা ইভেন্টের আশেপাশের পরিস্থিতি সম্পর্কে আরও ভালোভাবে বোঝার জন্য আপনি সেইসব রিপোর্ট কাস্টমাইজ করতে পারবেন।
কাস্টম কী, কাস্টম লগ মেসেজ এবং ব্যবহারকারীর শনাক্তকারী লগ করতে আপনার অ্যাপকে ইনস্ট্রুমেন্ট করুন।
Crashlytics-এ ব্যতিক্রম সম্পর্কে অভিযোগ জানান।
আপনার অ্যাপ Google Analytics-এর জন্য Firebase SDK ব্যবহার করলে, অটোমেটিক ব্রেডক্রাম্ব লগ পান। এইসব লগ আপনাকে আপনার অ্যাপে Crashlytics-এর সংগ্রহ করা ইভেন্ট পর্যন্ত ব্যবহারকারীর অ্যাকশন সম্পর্কে দৃশ্যমানতা দেয়।
আপনার ব্যবহারকারীদের জন্য অটোমেটিক ক্র্যাশ রিপোর্টিং বন্ধ করুন এবং অপ্ট-ইন রিপোর্টিং চালু করুন। মনে রাখবেন যে, ডিফল্ট হিসেবে, Crashlytics আপনার অ্যাপের সব ব্যবহারকারীর জন্য ক্র্যাশ রিপোর্ট অটোমেটিক সংগ্রহ করে।
কাস্টম কী যোগ করা
ক্র্যাশ হওয়ার আগে আপনার অ্যাপের নির্দিষ্ট অবস্থা সম্পর্কে জানতে কাস্টম কী সাহায্য করে। আপনি ক্র্যাশ রিপোর্টের সাথে ইচ্ছামতো কী-ভ্যালু পেয়ার অ্যাসোসিয়েট করতে পারবেন, তারপর Firebase কনসোলের DevOps ও এনগেজমেন্ট > Crashlytics ড্যাশবোর্ডে ক্র্যাশ রিপোর্ট সার্চ ও ফিল্টার করতে কাস্টম কী ব্যবহার করতে পারবেন।
আপনি কাস্টম কীয়ের সাথে ম্যাচ করে এমন সমস্যা সার্চ করতে পারবেন।
কনসোলে কোনও নির্দিষ্ট সমস্যা পর্যালোচনা করার সময়, আপনি প্রতিটি ইভেন্টের জন্য সম্পর্কিত কাস্টম কী (কী সাবট্যাব) দেখতে এবং এমনকি কাস্টম কী (পৃষ্ঠার উপরে ফিল্টার মেনু) অনুযায়ী ইভেন্ট ফিল্টার করতে পারবেন।
কী-ভ্যালু পেয়ার সেট করতে setCustomValue পদ্ধতি ব্যবহার করুন। যেমন:
Swift
// Set int_key to 100. Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key") // Set str_key to "hello". Crashlytics.crashlytics().setCustomValue("hello", forKey: "str_key")
Objective-C
পূর্ণসংখ্যা, বুলিয়ান বা ফ্লোট সেট করার সময়, ভ্যালুকে @(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"];
এছাড়াও, আপনি কোনও বিদ্যমান কী কল করে এবং এটিকে অন্য কোনও ভ্যালুতে সেট করে সেটির ভ্যালু পরিবর্তন করতে পারেন। যেমন:
Swift
Crashlytics.crashlytics().setCustomValue(100, forKey: "int_key") // Set int_key to 50 from 100. Crashlytics.crashlytics().setCustomValue(50, forKey: "int_key")
Objective-C
[[FIRCrashlytics crashlytics] setCustomValue:@(100) forKey:@"int_key"]; // Set int_key to 50 from 100. [[FIRCrashlytics crashlytics] setCustomValue:@(50) forKey:@"int_key"];
শুধুমাত্র NSDictionary প্যারামিটার সহ setCustomKeysAndValues পদ্ধতি ব্যবহার করে বাল্কে কী-ভ্যালু পেয়ার যোগ করুন:
Swift
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)
Objective-C
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 লগ যোগ করতে পারেন। Crashlytics লগগুলি আপনার ক্র্যাশ ডেটার সাথে অ্যাসোসিয়েট করে এবং কোনও সমস্যার বিবরণ দেখার সময় লগ ট্যাবে সেগুলি দেখায় (Firebase কনসোলের DevOps ও এনগেজমেন্ট > Crashlytics ড্যাশবোর্ডে আপনার সব সমস্যা দেখুন)।
Swift
সমস্যা চিহ্নিত করতে 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
রেফারেন্স ডকুমেন্টেশন দেখুন।
Objective-C
সমস্যা চিহ্নিত করতে 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 আপনার ক্র্যাশ রিপোর্টে ব্যবহারকারীদের পরিচয় গোপন রেখে শনাক্ত করার একটি উপায় অন্তর্ভুক্ত করে।
আপনার রিপোর্টে ব্যবহারকারীর আইডি যোগ করতে, প্রতিটি ব্যবহারকারীকে আইডি নম্বর, টোকেন বা হ্যাশ করা ভ্যালুর ফর্ম্যাটে একটি অনন্য শনাক্তকারী অ্যাসাইন করুন:
Swift
Crashlytics.crashlytics().setUserID("123456789")
Objective-C
[[FIRCrashlytics crashlytics] setUserID:@"123456789"];
আপনি সেট করার পরে কখনও ব্যবহারকারী শনাক্তকারী মুছে দিতে চাইলে, মানটি রিসেট করে খালি স্ট্রিং করে দিন। ব্যবহারকারীর শনাক্তকারী মুছে দিলেও আগে থেকে থাকা Crashlytics রেকর্ড মুছে যায় না। আপনি যদি কোনও ব্যবহারকারীর আইডির সাথে যুক্ত রেকর্ড মুছে দিতে চান, তাহলে Firebase সহায়তা টিমের সাথে যোগাযোগ করুন।
গুরুতর নয় এমন ব্যতিক্রম সম্পর্কে অভিযোগ জানানো
আপনার অ্যাপ ক্র্যাশ করার ঘটনা অটোমেটিক রিপোর্ট করা ছাড়াও, Crashlytics আপনাকে গুরুতর নয় এমন ব্যতিক্রম রেকর্ড করতে এবং পরের বার আপনার অ্যাপ লঞ্চ করার সময় সেগুলি আপনাকে পাঠাতে দেয়।
আপনি recordError পদ্ধতির মাধ্যমে NSError অবজেক্ট রেকর্ড করে নন-ফ্যাটাল ব্যতিক্রম রেকর্ড করতে পারেন।
recordError,
[NSThread callStackReturnAddresses]-কে কল করে থ্রেডের কল স্ট্যাক ক্যাপচার করে।
Swift
Crashlytics.crashlytics().record(error: error)
Objective-C
[[FIRCrashlytics crashlytics] recordError:error];
recordError পদ্ধতি ব্যবহার করার সময়, NSError
স্ট্রাকচার এবং কীভাবে Crashlytics ক্র্যাশ গ্রুপ করার জন্য ডেটা ব্যবহার করে তা বোঝা গুরুত্বপূর্ণ। recordError পদ্ধতির ভুল
ব্যবহারের ফলে অপ্রত্যাশিত আচরণ হতে পারে এবং এর ফলে Crashlytics আপনার অ্যাপের জন্য লগ করা সমস্যার রিপোর্ট করার ক্ষেত্রে সীমাবদ্ধতা
আরোপ করতে পারে।
NSError অবজেক্টে তিনটি আর্গুমেন্ট থাকে:
domain: Stringcode: IntuserInfo: [AnyHashable : Any]? = nil
ফ্যাটাল ক্র্যাশ, যা স্ট্যাক ট্রেস বিশ্লেষণের মাধ্যমে গ্রুপ করা হয়, তার বিপরীতে লগ করা সমস্যাগুলি
domain এবং code দ্বারা গ্রুপ করা হয়। গুরুতর ক্র্যাশ ও লগ করা সমস্যার মধ্যে এটি একটি গুরুত্বপূর্ণ পার্থক্য।
যেমন:
Swift
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)
Objective-C
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-এ
প্রসঙ্গ যোগ করতে লগ ও কাস্টম কী এম্বেড করতে পারবেন। তবে, ক্র্যাশ ও লগ করা সমস্যার সাথে অ্যাটাচ করা লগ আলাদা হয়।
ক্র্যাশ হওয়ার পরে অ্যাপ আবার চালু করা হলে, ডিস্ক থেকে
যেসব লগ Crashlytics রিট্রিভ করা হয় সেগুলি ক্র্যাশ হওয়ার
ঠিক আগে পর্যন্ত লেখা হয়। আপনি NSError লগ করলে, অ্যাপ সঙ্গে সঙ্গে
বন্ধ হয়ে যায় না। কারণ Crashlytics শুধুমাত্র পরবর্তী অ্যাপ লঞ্চে লগ করা সমস্যার রিপোর্ট পাঠায় এবং ডিস্কে লগ করার জন্য বরাদ্দ করা স্পেসের পরিমাণ সীমিত করতে হয়।
তাই, NSError রেকর্ড করার পরে পর্যাপ্ত লগ করা সম্ভব যাতে Crashlytics ডিভাইস থেকে রিপোর্ট পাঠানোর
সময় সব প্রাসঙ্গিক লগ রোটেট হয়ে যায়। আপনার অ্যাপে লগ NSErrors ও লগ এবং
কাস্টম কী ব্যবহার করার সময় এই ব্যালেন্সের কথা মাথায় রাখবেন।
পারফর্ম্যান্স সংক্রান্ত বিবেচনা
মনে রাখবেন যে NSError লগ করা বেশ ব্যয়বহুল হতে পারে। আপনি কল করার সময়, Crashlytics স্ট্যাক আনওয়াইন্ডিং নামক একটি প্রসেস ব্যবহার করে
বর্তমান থ্রেডের কল স্ট্যাক ক্যাপচার করে।
এই প্রসেস CPU ও I/O ইনটেনসিভ হতে পারে,
বিশেষত DWARF আনওয়াইন্ডিং (arm64 ও x86) কাজ করে এমন আর্কিটেকচারে।
আনওয়াইন্ডিং সম্পূর্ণ হওয়ার পরে, তথ্য ডিস্কে সিঙ্ক্রোনাসভাবে লেখা হয়।
পরের লাইন ক্র্যাশ করলেও এর ফলে ডেটা হারিয়ে যায় না।
ব্যাকগ্রাউন্ড থ্রেডে এই API কল করা নিরাপদ হলেও, মনে রাখবেন যে অন্য কিউতে এই কল ডিসপ্যাচ করলে বর্তমান স্ট্যাক ট্রেসের প্রসঙ্গটি হারিয়ে যায়।
NSExceptions সম্পর্কে কী বলা যায়?
Crashlytics সরাসরি NSException
ইনস্ট্যান্স লগ ও রেকর্ড করার সুবিধা দেয় না। সাধারণভাবে, Cocoa এবং Cocoa Touch API
ব্যতিক্রম-নিরাপদ নয়। এর অর্থ হল, @catch ব্যবহার করলে আপনার প্রসেসে খুব গুরুতর অনিচ্ছাকৃত
পার্শ্বপ্রতিক্রিয়া হতে পারে, এমনকি অত্যন্ত যত্ন সহকারে ব্যবহার করলেও। আপনার কোডে @catch স্টেটমেন্ট ব্যবহার
করা উচিত নয়। এই বিষয়ে
Apple-এর ডকুমেন্টেশন
দেখুন।
স্ট্যাক ট্রেস কাস্টমাইজ করা
আপনার অ্যাপ যদি কোনও নন-নেটিভ এনভায়রনমেন্টে (যেমন, C++ বা Unity) চলে, তাহলে আপনার অ্যাপের নেটিভ ব্যতিক্রম ফর্ম্যাটে ক্র্যাশ মেটাডেটা রিপোর্ট করতে, আপনি ব্যতিক্রম মডেল API ব্যবহার করতে পারবেন। রিপোর্ট করা ব্যতিক্রমগুলি নন-ফ্যাটাল হিসেবে চিহ্নিত করা হয়।
Swift
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)
Objective-C
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];
এছাড়াও, কাস্টম স্ট্যাক ফ্রেম শুধুমাত্র অ্যাড্রেস দিয়ে ইনিশিয়ালাইজ করা যেতে পারে:
Swift
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)
Objective-C
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 যোগ করতে হবেGoogle Analytics। এইসব প্রয়োজনীয়তা পূরণ হয়ে গেলে, কোনও সমস্যার বিবরণ দেখার সময়, লগ ট্যাবে ইভেন্টের ডেটার সাথে ব্রেডক্রাম্ব লগ অটোমেটিক অন্তর্ভুক্ত করা হয় (Firebase কনসোলের DevOps ও এনগেজমেন্ট > Crashlytics ড্যাশবোর্ডে আপনার সব সমস্যা দেখুন)।
Analytics SDK
অটোমেটিক screen_view ইভেন্ট লগ করে
যা ক্র্যাশ, নন-ফ্যাটাল বা ANR ইভেন্টের আগে দেখা স্ক্রিনের
তালিকা দেখানোর জন্য ব্রেডক্রাম্ব লগ চালু করে। screen_view ব্রেডক্রাম্ব লগে একটি
firebase_screen_class প্যারামিটার থাকে।
এছাড়াও, ব্যবহারকারীর সেশনের মধ্যে আপনি ম্যানুয়ালি লগ করা যেকোনও কাস্টম ইভেন্ট, ইভেন্টের প্যারামিটার ডেটা সহ, ব্রেডক্রাম্ব লগ পূরণ করে। এই ডেটা ক্র্যাশ, নন-ফ্যাটাল বা ANR ইভেন্টের আগে ব্যবহারকারীর অ্যাকশনের একটি সিরিজ দেখাতে সাহায্য করতে পারে।
মনে রাখবেন, আপনি Google Analytics ডেটা সংগ্রহ ও ব্যবহার করা নিয়ন্ত্রণ করতে পারবেন, এর মধ্যে ব্রেডক্রাম্ব লগ পূরণ করা ডেটা অন্তর্ভুক্ত।
রিপোর্টিংয়ে অপ্ট-ইন করার সুবিধা চালু করা
ডিফল্ট হিসেবে, Crashlytics আপনার সব অ্যাপের ব্যবহারকারীদের জন্য ক্র্যাশ রিপোর্ট অটোমেটিক সংগ্রহ করে। ব্যবহারকারীদের পাঠানো ডেটার উপর আরও নিয়ন্ত্রণ দিতে, আপনি অটোমেটিক রিপোর্টিং বন্ধ করে এবং আপনার কোডে বেছে নিলে শুধুমাত্র Crashlytics-এ ডেটা পাঠানোর মাধ্যমে অপ্ট-ইন রিপোর্টিং চালু করতে পারবেন।
আপনার
Info.plistফাইলে নতুন কী যোগ করে অটোমেটিক সংগ্রহ করা বন্ধ করুন:- কী:
FirebaseCrashlyticsCollectionEnabled - মূল্য:
false
- কী:
রানটাইমে Crashlytics data collection ওভাররাইড কল করে বেছে নেওয়া ব্যবহারকারীদের জন্য সংগ্রহ করার সুবিধা চালু করুন। আপনার অ্যাপের পরবর্তী সবকটি লঞ্চ জুড়ে ওভাররাইড ভ্যালু বজায় থাকে, তাই Crashlytics সেই ব্যবহারকারীর জন্য রিপোর্ট অটোমেটিক সংগ্রহ করতে পারে।
Swift
Crashlytics.crashlytics().setCrashlyticsCollectionEnabled(true)
Objective-C
[[FIRCrashlytics crashlytics] setCrashlyticsCollectionEnabled:YES];
ব্যবহারকারী পরে ডেটা সংগ্রহ করার বিকল্প থেকে বেরিয়ে এলে, আপনি ওভাররাইড ভ্যালু হিসেবে
falseপাস করতে পারবেন। এর ফলে, ব্যবহারকারী পরের বার অ্যাপ লঞ্চ করলে এটি প্রয়োগ করা হবে এবং ব্যবহারকারী যতবার অ্যাপ লঞ্চ করবেন ততবার এটি প্রয়োগ করা হবে।
ক্র্যাশ ইনসাইট ডেটা ম্যানেজ করা
অন্যান্য Firebase অ্যাপ থেকে পাওয়া ট্রেসের সাথে আপনার বেনামী স্ট্যাক ট্রেস তুলনা করে এবং আপনার সমস্যাটি কোনও বৃহত্তর ট্রেন্ডের অংশ কিনা তা জানিয়ে ক্র্যাশ ইনসাইট আপনাকে সমস্যা সমাধান করতে সাহায্য করে। অনেক সমস্যার ক্ষেত্রে, ক্র্যাশ ইনসাইট এমনকি ক্র্যাশ ডিবাগ করার জন্য রিসোর্সও প্রদান করে।
সাধারণ স্থিতিশীলতা সংক্রান্ত ট্রেন্ড শনাক্ত করতে ক্র্যাশ ইনসাইট এগ্রিগেট করা ক্র্যাশ ডেটা ব্যবহার করে। আপনি অ্যাপের ডেটা শেয়ার করতে না চাইলে, ক্র্যাশ ইনসাইট থেকে বেরিয়ে আসতে পারেন। এর জন্য, Firebase কনসোলের DevOps ও এনগেজমেন্ট > Crashlytics ড্যাশবোর্ডের মধ্যে থাকা ক্র্যাশ ইনসাইট মেনু থেকে বেরিয়ে আসতে পারেন।
পরবর্তী ধাপ
- উন্নত বিশ্লেষণ ও ফিচারের জন্য, যেমন আপনার ডেটা কোয়েরি করা, কাস্টম ড্যাশবোর্ড তৈরি করা এবং কাস্টম অ্যালার্ট সেট-আপ করার জন্য, BigQuery বা Cloud Logging-এ আপনার ডেটা এক্সপোর্ট করুন ।