Crashlytics ড্যাশবোর্ডে, আপনি একটি সমস্যায় ক্লিক করতে পারেন এবং একটি বিস্তারিত ইভেন্ট রিপোর্ট পেতে পারেন। আপনার অ্যাপে কী ঘটছে এবং Crashlytics এ রিপোর্ট করা ইভেন্টগুলির আশেপাশের পরিস্থিতিগুলি আরও ভালভাবে বুঝতে সাহায্য করার জন্য আপনি সেই প্রতিবেদনগুলি কাস্টমাইজ করতে পারেন।
Crashlytics এ ধরা না পড়া ব্যতিক্রম এবং ধরা ব্যতিক্রমগুলি রিপোর্ট করুন।
কাস্টম কী , কাস্টম লগ বার্তা এবং ব্যবহারকারী শনাক্তকারী লগ করার জন্য আপনার অ্যাপটিকে ইনস্ট্রুমেন্ট করুন।
আপনার অ্যাপ Google Analytics জন্য Firebase SDK ব্যবহার করলে স্বয়ংক্রিয়ভাবে ব্রেডক্রাম্ব লগ পান। এই লগগুলি আপনাকে আপনার অ্যাপে একটি Crashlytics সংগৃহীত ইভেন্ট পর্যন্ত ব্যবহারকারীর ক্রিয়াকলাপের দৃশ্যমানতা দেয়।
স্বয়ংক্রিয় ক্র্যাশ রিপোর্টিং বন্ধ করুন এবং আপনার ব্যবহারকারীদের জন্য অপ্ট-ইন রিপোর্টিং সক্ষম করুন । মনে রাখবেন, ডিফল্টরূপে, Crashlytics স্বয়ংক্রিয়ভাবে আপনার সমস্ত অ্যাপের ব্যবহারকারীদের জন্য প্ল্যাটফর্ম-নেটিভ ক্র্যাশ রিপোর্ট সংগ্রহ করে।
ধরা পড়া ব্যতিক্রমগুলি রিপোর্ট করুন
আপনি FirebaseCrashlytics.instance.recordFlutterFatalError
এর সাথে FlutterError.onError
ওভাররাইড করে ফ্লটার ফ্রেমওয়ার্কের মধ্যে নিক্ষিপ্ত সমস্ত "মারাত্মক" ত্রুটিগুলি স্বয়ংক্রিয়ভাবে ধরতে পারেন৷ বিকল্পভাবে, "অ-মারাত্মক" ব্যতিক্রমগুলিও ধরতে, FirebaseCrashlytics.instance.recordFlutterError
এর সাথে FlutterError.onError
ওভাররাইড করুন :
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
bool weWantFatalErrorRecording = true;
FlutterError.onError = (errorDetails) {
if(weWantFatalErrorRecording){
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
} else {
FirebaseCrashlytics.instance.recordFlutterError(errorDetails);
}
};
runApp(MyApp());
}
অ্যাসিঙ্ক্রোনাস ত্রুটি
অ্যাসিঙ্ক্রোনাস ত্রুটিগুলি ফ্লটার ফ্রেমওয়ার্ক দ্বারা ধরা পড়ে না:
ElevatedButton(
onPressed: () async {
throw Error();
}
...
)
এই ধরনের ত্রুটি ধরতে, আপনি PlatformDispatcher.instance.onError
হ্যান্ডলার ব্যবহার করতে পারেন:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FlutterError.onError = (errorDetails) {
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
};
// Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
PlatformDispatcher.instance.onError = (error, stack) {
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
return true;
};
runApp(MyApp());
}
ফ্লটারের বাইরে ত্রুটি
Flutter প্রসঙ্গের বাইরে ঘটে যাওয়া ত্রুটিগুলি ধরতে, বর্তমান Isolate
একটি ত্রুটি শ্রোতা ইনস্টল করুন:
Isolate.current.addErrorListener(RawReceivePort((pair) async {
final List<dynamic> errorAndStacktrace = pair;
await FirebaseCrashlytics.instance.recordError(
errorAndStacktrace.first,
errorAndStacktrace.last,
fatal: true,
);
}).sendPort);
রিপোর্ট ধরা ব্যতিক্রম
আপনার অ্যাপের ক্র্যাশগুলি স্বয়ংক্রিয়ভাবে রিপোর্ট করার পাশাপাশি, Crashlytics আপনাকে অ-মারাত্মক ব্যতিক্রমগুলি রেকর্ড করতে দেয় এবং পরের বার যখন কোনও মারাত্মক ঘটনা রিপোর্ট করা হয় বা অ্যাপটি পুনরায় চালু হয় তখন সেগুলি আপনাকে পাঠায়।
আপনার অ্যাপের ক্যাচ ব্লকগুলিতে অ-মারাত্মক ব্যতিক্রমগুলি রেকর্ড করতে recordError
পদ্ধতি ব্যবহার করুন। যেমন:
await FirebaseCrashlytics.instance.recordError(
error,
stackTrace,
reason: 'a non-fatal error'
);
// Or you can use:
await FirebaseCrashlytics.instance.recordFlutterError(errorDetails);
আপনি information
সম্পত্তি ব্যবহার করে সম্ভাব্য ত্রুটি সম্পর্কে আরও তথ্য লগ করতে চাইতে পারেন:
await FirebaseCrashlytics.instance.recordError(
error,
stackTrace,
reason: 'a non-fatal error',
information: ['further diagnostic information about the error', 'version 2.0'],
);
এই ব্যতিক্রমগুলি Firebase কনসোলে অ-মারাত্মক সমস্যা হিসাবে উপস্থিত হয়। ইস্যু সারাংশে ভার্সন এবং হার্ডওয়্যার ডিভাইসের ব্রেকডাউন সহ আপনি সাধারণত ক্র্যাশ থেকে পাওয়া সমস্ত রাষ্ট্রীয় তথ্য রয়েছে।
Crashlytics আপনার অ্যাপে পারফরম্যান্সের প্রভাব কমাতে একটি ডেডিকেটেড ব্যাকগ্রাউন্ড থ্রেডে ব্যতিক্রম প্রক্রিয়া করে। আপনার ব্যবহারকারীদের নেটওয়ার্ক ট্রাফিক কমাতে, প্রয়োজনে Crashlytics ডিভাইস থেকে পাঠানো রিপোর্টের সংখ্যা রেট-সীমিত করবে।
কাস্টম কী যোগ করুন
কাস্টম কীগুলি আপনাকে আপনার অ্যাপের নির্দিষ্ট অবস্থা পেতে সাহায্য করে যা ক্র্যাশের দিকে নিয়ে যায়। আপনি আপনার ক্র্যাশ রিপোর্টের সাথে নির্বিচারে কী/মান জোড়া সংযুক্ত করতে পারেন, তারপর Firebase কনসোলে ক্র্যাশ রিপোর্টগুলি অনুসন্ধান এবং ফিল্টার করতে কাস্টম কীগুলি ব্যবহার করুন৷
Crashlytics ড্যাশবোর্ডে , আপনি একটি কাস্টম কী মেলে এমন সমস্যাগুলি অনুসন্ধান করতে পারেন৷
আপনি যখন কনসোলে একটি নির্দিষ্ট সমস্যা পর্যালোচনা করছেন, আপনি প্রতিটি ইভেন্টের জন্য সংশ্লিষ্ট কাস্টম কীগুলি দেখতে পারেন ( কী সাবট্যাব) এবং এমনকি কাস্টম কী (পৃষ্ঠার শীর্ষে ফিল্টার মেনু) দ্বারা ইভেন্টগুলি ফিল্টার করতে পারেন৷
কী/মান জোড়া সেট করতে setCustomKey
উদাহরণ পদ্ধতি ব্যবহার করুন। এখানে কিছু উদাহরণ আছে:
// Set a key to a string.
FirebaseCrashlytics.instance.setCustomKey('str_key', 'hello');
// Set a key to a boolean.
FirebaseCrashlytics.instance.setCustomKey("bool_key", true);
// Set a key to an int.
FirebaseCrashlytics.instance.setCustomKey("int_key", 1);
// Set a key to a long.
FirebaseCrashlytics.instance.setCustomKey("int_key", 1L);
// Set a key to a float.
FirebaseCrashlytics.instance.setCustomKey("float_key", 1.0f);
// Set a key to a double.
FirebaseCrashlytics.instance.setCustomKey("double_key", 1.0);
কাস্টম লগ বার্তা যোগ করুন
ক্র্যাশের দিকে পরিচালিত ইভেন্টগুলির জন্য নিজেকে আরও প্রসঙ্গ দিতে, আপনি আপনার অ্যাপে কাস্টম Crashlytics লগ যোগ করতে পারেন। Crashlytics লগগুলিকে আপনার ক্র্যাশ ডেটার সাথে সংযুক্ত করে এবং Crashlytics লগ ট্যাবের অধীনে Firebase কনসোলে প্রদর্শন করে।
সমস্যা চিহ্নিত করতে সাহায্য করার জন্য log
ব্যবহার করুন। যেমন:
FirebaseCrashlytics.instance.log("Higgs-Boson detected! Bailing out");
ব্যবহারকারী শনাক্তকারী সেট করুন
একটি সমস্যা নির্ণয় করতে, আপনার ব্যবহারকারীদের মধ্যে কোনটি প্রদত্ত ক্র্যাশের সম্মুখীন হয়েছে তা জানা প্রায়ই সহায়ক। Crashlytics আপনার ক্র্যাশ রিপোর্টে ব্যবহারকারীদের বেনামে সনাক্ত করার একটি উপায় অন্তর্ভুক্ত করে।
আপনার রিপোর্টে ব্যবহারকারীর আইডি যোগ করতে, প্রতিটি ব্যবহারকারীকে একটি আইডি নম্বর, টোকেন বা হ্যাশ করা মান আকারে একটি অনন্য শনাক্তকারী বরাদ্দ করুন:
FirebaseCrashlytics.instance.setUserIdentifier("12345");
আপনি যদি এটি সেট করার পরে কখনও একটি ব্যবহারকারী শনাক্তকারী সাফ করতে চান, তাহলে মানটিকে একটি ফাঁকা স্ট্রিংয়ে পুনরায় সেট করুন। একটি ব্যবহারকারী শনাক্তকারী সাফ করা বিদ্যমান Crashlytics রেকর্ড মুছে ফেলা হয় না। আপনি যদি একটি ব্যবহারকারী আইডির সাথে যুক্ত রেকর্ড মুছে ফেলতে চান, Firebase সহায়তার সাথে যোগাযোগ করুন ।
ব্রেডক্রাম্ব লগ পান
ব্রেডক্রাম্ব লগগুলি আপনাকে ক্র্যাশ, অ-মারাত্মক বা ANR ইভেন্টের দিকে নিয়ে যাওয়ার জন্য আপনার অ্যাপের সাথে একজন ব্যবহারকারীর ইন্টারঅ্যাকশনগুলি সম্পর্কে আরও ভাল ধারণা দেয়। একটি সমস্যা পুনরুত্পাদন এবং ডিবাগ করার চেষ্টা করার সময় এই লগগুলি সহায়ক হতে পারে।
ব্রেডক্রাম্ব লগগুলি Google Analytics দ্বারা চালিত হয়, তাই ব্রেডক্রাম্ব লগগুলি পেতে, আপনাকে আপনার Firebase প্রকল্পের জন্য Google Analytics সক্ষম করতে হবে এবং আপনার অ্যাপে Google Analytics এর জন্য Firebase SDK যোগ করতে হবে ৷ একবার এই প্রয়োজনীয়তাগুলি পূরণ হয়ে গেলে, আপনি যখন কোনও সমস্যার বিশদ বিবরণ দেখেন তখন লগ ট্যাবের মধ্যে একটি ইভেন্টের ডেটার সাথে ব্রেডক্রাম্ব লগগুলি স্বয়ংক্রিয়ভাবে অন্তর্ভুক্ত হয়৷
Analytics SDK স্বয়ংক্রিয়ভাবে screen_view
ইভেন্ট লগ করে যা ব্রেডক্রাম্ব লগগুলিকে ক্র্যাশ, নন-ফেটাল বা ANR ইভেন্টের আগে দেখা স্ক্রিনের তালিকা দেখাতে সক্ষম করে। একটি screen_view
ব্রেডক্রাম্ব লগে একটি firebase_screen_class
প্যারামিটার থাকে।
ব্রেডক্রাম্ব লগগুলি ইভেন্টের প্যারামিটার ডেটা সহ ব্যবহারকারীর সেশনের মধ্যে ম্যানুয়ালি লগ করা যেকোন কাস্টম ইভেন্টগুলির সাথেও পূর্ণ হয়৷ এই ডেটা ক্র্যাশ, অ-মারাত্মক, বা ANR ইভেন্ট পর্যন্ত ব্যবহারকারীর ক্রিয়াগুলির একটি সিরিজ দেখাতে সাহায্য করতে পারে।
মনে রাখবেন যে আপনি Google Analytics ডেটা সংগ্রহ এবং ব্যবহার নিয়ন্ত্রণ করতে পারেন, যার মধ্যে সেই ডেটা রয়েছে যা ব্রেডক্রাম্ব লগগুলিকে পপুলেট করে৷
অপ্ট-ইন রিপোর্টিং সক্ষম করুন
ডিফল্টরূপে, Crashlytics স্বয়ংক্রিয়ভাবে আপনার সমস্ত অ্যাপের ব্যবহারকারীদের জন্য ক্র্যাশ রিপোর্ট সংগ্রহ করে। ব্যবহারকারীদের তাদের পাঠানো ডেটার উপর আরও নিয়ন্ত্রণ দিতে, আপনি স্বয়ংক্রিয় রিপোর্টিং অক্ষম করে অপ্ট-ইন রিপোর্টিং সক্ষম করতে পারেন এবং যখন আপনি আপনার কোডে বেছে নেন তখন শুধুমাত্র Crashlytics এ ডেটা পাঠাতে পারেন।
স্থানীয়ভাবে স্বয়ংক্রিয় সংগ্রহ বন্ধ করুন:
অ্যাপল প্ল্যাটফর্ম
আপনার
Info.plist
ফাইলে একটি নতুন কী যোগ করুন:- কী:
FirebaseCrashlyticsCollectionEnabled
- মান:
false
অ্যান্ড্রয়েড
আপনার
AndroidManifest.xml
ফাইলেরapplication
ব্লকে, স্বয়ংক্রিয় সংগ্রহ বন্ধ করতে একটিmeta-data
ট্যাগ যোগ করুন:<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
- কী:
রানটাইমে Crashlytics ডেটা সংগ্রহ ওভাররাইড কল করে নির্বাচিত ব্যবহারকারীদের জন্য সংগ্রহ সক্ষম করুন। ওভাররাইড মান আপনার অ্যাপের পরবর্তী সমস্ত লঞ্চ জুড়ে থাকে যাতে Crashlytics স্বয়ংক্রিয়ভাবে সেই ব্যবহারকারীর জন্য প্রতিবেদন সংগ্রহ করতে পারে।
FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
ব্যবহারকারী যদি পরে ডেটা সংগ্রহ থেকে অপ্ট-আউট করেন, তাহলে আপনি ওভাররাইড মান হিসাবে
false
পাস করতে পারেন, যা পরবর্তী সময়ে ব্যবহারকারী অ্যাপটি চালু করার সময় প্রযোজ্য হবে এবং সেই ব্যবহারকারীর জন্য পরবর্তী সমস্ত লঞ্চ জুড়ে থাকবে।
ক্র্যাশ ইনসাইট ডেটা পরিচালনা করুন
ক্র্যাশ ইনসাইট আপনাকে আপনার বেনামী স্ট্যাক ট্রেসগুলিকে অন্যান্য ফায়ারবেস অ্যাপের ট্রেসের সাথে তুলনা করে এবং আপনার সমস্যাটি একটি বৃহত্তর প্রবণতার অংশ কিনা তা আপনাকে জানিয়ে সমস্যার সমাধান করতে সহায়তা করে। অনেক সমস্যার জন্য, ক্র্যাশ ইনসাইট এমনকি আপনাকে ক্র্যাশ ডিবাগ করতে সহায়তা করার জন্য সংস্থান সরবরাহ করে।
ক্র্যাশ ইনসাইট সাধারণ স্থিতিশীলতার প্রবণতা সনাক্ত করতে সমষ্টিগত ক্র্যাশ ডেটা ব্যবহার করে। আপনি যদি আপনার অ্যাপের ডেটা শেয়ার না করতে চান, তাহলে Firebase কনসোলে আপনার Crashlytics সমস্যা তালিকার শীর্ষে থাকা ক্র্যাশ ইনসাইটস মেনু থেকে আপনি ক্র্যাশ ইনসাইটগুলি অপ্ট-আউট করতে পারেন৷
,Crashlytics ড্যাশবোর্ডে, আপনি একটি সমস্যায় ক্লিক করতে পারেন এবং একটি বিস্তারিত ইভেন্ট রিপোর্ট পেতে পারেন। আপনার অ্যাপে কী ঘটছে এবং Crashlytics এ রিপোর্ট করা ইভেন্টগুলির আশেপাশের পরিস্থিতিগুলি আরও ভালভাবে বুঝতে সাহায্য করার জন্য আপনি সেই প্রতিবেদনগুলি কাস্টমাইজ করতে পারেন।
Crashlytics এ ধরা না পড়া ব্যতিক্রম এবং ধরা ব্যতিক্রমগুলি রিপোর্ট করুন।
কাস্টম কী , কাস্টম লগ বার্তা এবং ব্যবহারকারী শনাক্তকারী লগ করার জন্য আপনার অ্যাপটিকে ইনস্ট্রুমেন্ট করুন।
আপনার অ্যাপ Google Analytics জন্য Firebase SDK ব্যবহার করলে স্বয়ংক্রিয়ভাবে ব্রেডক্রাম্ব লগ পান। এই লগগুলি আপনাকে আপনার অ্যাপে একটি Crashlytics সংগৃহীত ইভেন্ট পর্যন্ত ব্যবহারকারীর ক্রিয়াকলাপের দৃশ্যমানতা দেয়।
স্বয়ংক্রিয় ক্র্যাশ রিপোর্টিং বন্ধ করুন এবং আপনার ব্যবহারকারীদের জন্য অপ্ট-ইন রিপোর্টিং সক্ষম করুন । মনে রাখবেন, ডিফল্টরূপে, Crashlytics স্বয়ংক্রিয়ভাবে আপনার সমস্ত অ্যাপের ব্যবহারকারীদের জন্য প্ল্যাটফর্ম-নেটিভ ক্র্যাশ রিপোর্ট সংগ্রহ করে।
ধরা পড়া ব্যতিক্রমগুলি রিপোর্ট করুন
আপনি FirebaseCrashlytics.instance.recordFlutterFatalError
এর সাথে FlutterError.onError
ওভাররাইড করে ফ্লটার ফ্রেমওয়ার্কের মধ্যে নিক্ষিপ্ত সমস্ত "মারাত্মক" ত্রুটিগুলি স্বয়ংক্রিয়ভাবে ধরতে পারেন৷ বিকল্পভাবে, "অ-মারাত্মক" ব্যতিক্রমগুলিও ধরতে, FirebaseCrashlytics.instance.recordFlutterError
এর সাথে FlutterError.onError
ওভাররাইড করুন :
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
bool weWantFatalErrorRecording = true;
FlutterError.onError = (errorDetails) {
if(weWantFatalErrorRecording){
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
} else {
FirebaseCrashlytics.instance.recordFlutterError(errorDetails);
}
};
runApp(MyApp());
}
অ্যাসিঙ্ক্রোনাস ত্রুটি
অ্যাসিঙ্ক্রোনাস ত্রুটিগুলি ফ্লটার ফ্রেমওয়ার্ক দ্বারা ধরা পড়ে না:
ElevatedButton(
onPressed: () async {
throw Error();
}
...
)
এই ধরনের ত্রুটি ধরতে, আপনি PlatformDispatcher.instance.onError
হ্যান্ডলার ব্যবহার করতে পারেন:
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
FlutterError.onError = (errorDetails) {
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
};
// Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
PlatformDispatcher.instance.onError = (error, stack) {
FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
return true;
};
runApp(MyApp());
}
ফ্লটারের বাইরে ত্রুটি
Flutter প্রসঙ্গের বাইরে ঘটে যাওয়া ত্রুটিগুলি ধরতে, বর্তমান Isolate
একটি ত্রুটি শ্রোতা ইনস্টল করুন:
Isolate.current.addErrorListener(RawReceivePort((pair) async {
final List<dynamic> errorAndStacktrace = pair;
await FirebaseCrashlytics.instance.recordError(
errorAndStacktrace.first,
errorAndStacktrace.last,
fatal: true,
);
}).sendPort);
রিপোর্ট ধরা ব্যতিক্রম
আপনার অ্যাপের ক্র্যাশগুলি স্বয়ংক্রিয়ভাবে রিপোর্ট করার পাশাপাশি, Crashlytics আপনাকে অ-মারাত্মক ব্যতিক্রমগুলি রেকর্ড করতে দেয় এবং পরের বার যখন কোনও মারাত্মক ঘটনা রিপোর্ট করা হয় বা অ্যাপটি পুনরায় চালু হয় তখন সেগুলি আপনাকে পাঠায়।
আপনার অ্যাপের ক্যাচ ব্লকগুলিতে অ-মারাত্মক ব্যতিক্রমগুলি রেকর্ড করতে recordError
পদ্ধতি ব্যবহার করুন। যেমন:
await FirebaseCrashlytics.instance.recordError(
error,
stackTrace,
reason: 'a non-fatal error'
);
// Or you can use:
await FirebaseCrashlytics.instance.recordFlutterError(errorDetails);
আপনি information
সম্পত্তি ব্যবহার করে সম্ভাব্য ত্রুটি সম্পর্কে আরও তথ্য লগ করতে চাইতে পারেন:
await FirebaseCrashlytics.instance.recordError(
error,
stackTrace,
reason: 'a non-fatal error',
information: ['further diagnostic information about the error', 'version 2.0'],
);
এই ব্যতিক্রমগুলি Firebase কনসোলে অ-মারাত্মক সমস্যা হিসাবে উপস্থিত হয়। ইস্যু সংক্ষিপ্তসারটিতে সংস্করণ এবং হার্ডওয়্যার ডিভাইসের ব্রেকডাউন সহ আপনি সাধারণত ক্র্যাশগুলি থেকে প্রাপ্ত সমস্ত রাষ্ট্রীয় তথ্য রয়েছে।
Crashlytics আপনার অ্যাপ্লিকেশনটিতে পারফরম্যান্সের প্রভাবকে হ্রাস করতে একটি উত্সর্গীকৃত ব্যাকগ্রাউন্ড থ্রেডে ব্যতিক্রমগুলি প্রক্রিয়া করে। আপনার ব্যবহারকারীর নেটওয়ার্ক ট্র্যাফিক হ্রাস করতে, Crashlytics প্রয়োজনে ডিভাইস বন্ধ করে দেওয়া প্রতিবেদনের সংখ্যা সীমাবদ্ধ করবে।
কাস্টম কী যুক্ত করুন
কাস্টম কীগুলি আপনাকে ক্র্যাশ পর্যন্ত আপনার অ্যাপ্লিকেশনটির নির্দিষ্ট অবস্থা পেতে সহায়তা করে। আপনি আপনার ক্র্যাশ রিপোর্টগুলির সাথে স্বেচ্ছাসেবী কী/মান জোড়া যুক্ত করতে পারেন, তারপরে Firebase কনসোলে ক্র্যাশ রিপোর্টগুলি অনুসন্ধান এবং ফিল্টার করতে কাস্টম কীগুলি ব্যবহার করুন।
Crashlytics ড্যাশবোর্ডে , আপনি কাস্টম কীটির সাথে মেলে এমন সমস্যাগুলি অনুসন্ধান করতে পারেন।
আপনি যখন কনসোলে একটি নির্দিষ্ট সমস্যা পর্যালোচনা করছেন, আপনি প্রতিটি ইভেন্টের জন্য সম্পর্কিত কাস্টম কীগুলি ( কী সাবট্যাব) দেখতে পারেন এবং এমনকি কাস্টম কীগুলি (পৃষ্ঠার শীর্ষে ফিল্টার মেনু) দ্বারা ইভেন্টগুলি ফিল্টার করতে পারেন।
কী/মান জোড়া সেট করতে setCustomKey
উদাহরণ পদ্ধতিটি ব্যবহার করুন। এখানে কিছু উদাহরণ আছে:
// Set a key to a string.
FirebaseCrashlytics.instance.setCustomKey('str_key', 'hello');
// Set a key to a boolean.
FirebaseCrashlytics.instance.setCustomKey("bool_key", true);
// Set a key to an int.
FirebaseCrashlytics.instance.setCustomKey("int_key", 1);
// Set a key to a long.
FirebaseCrashlytics.instance.setCustomKey("int_key", 1L);
// Set a key to a float.
FirebaseCrashlytics.instance.setCustomKey("float_key", 1.0f);
// Set a key to a double.
FirebaseCrashlytics.instance.setCustomKey("double_key", 1.0);
কাস্টম লগ বার্তা যুক্ত করুন
ক্র্যাশ পর্যন্ত পরিচালিত ইভেন্টগুলির জন্য নিজেকে আরও প্রসঙ্গ দেওয়ার জন্য, আপনি আপনার অ্যাপ্লিকেশনটিতে কাস্টম Crashlytics লগ যুক্ত করতে পারেন। Crashlytics আপনার ক্র্যাশ ডেটার সাথে লগগুলি সংযুক্ত করে এবং Crashlytics লগস ট্যাবের নীচে Firebase কনসোলে সেগুলি প্রদর্শন করে।
পিনপয়েন্টের সমস্যাগুলি সহায়তা করতে log
ব্যবহার করুন। যেমন:
FirebaseCrashlytics.instance.log("Higgs-Boson detected! Bailing out");
ব্যবহারকারী সনাক্তকারী সেট করুন
কোনও সমস্যা নির্ণয়ের জন্য, আপনার ব্যবহারকারীগুলির মধ্যে কোনটি প্রদত্ত ক্র্যাশটি অনুভব করেছেন তা প্রায়শই সহায়ক। Crashlytics আপনার ক্র্যাশ রিপোর্টে ব্যবহারকারীদের বেনামে সনাক্ত করার একটি উপায় অন্তর্ভুক্ত রয়েছে।
আপনার প্রতিবেদনে ব্যবহারকারী আইডি যুক্ত করতে, প্রতিটি ব্যবহারকারীকে আইডি নম্বর, টোকেন বা হ্যাশ মান আকারে একটি অনন্য শনাক্তকারীকে নিয়োগ করুন:
FirebaseCrashlytics.instance.setUserIdentifier("12345");
আপনি যদি এটি সেট করার পরে কোনও ব্যবহারকারীর শনাক্তকারী সাফ করার প্রয়োজন হয় তবে একটি ফাঁকা স্ট্রিংয়ে মানটি পুনরায় সেট করুন। ব্যবহারকারী সনাক্তকারী সাফ করা বিদ্যমান Crashlytics রেকর্ডগুলি সরিয়ে দেয় না। আপনার যদি কোনও ব্যবহারকারী আইডির সাথে সম্পর্কিত রেকর্ডগুলি মুছতে হয় তবে ফায়ারবেস সাপোর্টের সাথে যোগাযোগ করুন ।
ব্রেডক্রাম্ব লগ পান
ব্রেডক্রাম্ব লগগুলি আপনাকে আপনার অ্যাপ্লিকেশনটির সাথে ক্র্যাশ, অ-মারাত্মক বা এএনআর ইভেন্টের দিকে এগিয়ে যাওয়ার সাথে কোনও ব্যবহারকারীর যে মিথস্ক্রিয়া ছিল সে সম্পর্কে আরও ভাল ধারণা দেয়। কোনও সমস্যা পুনরুত্পাদন এবং ডিবাগ করার চেষ্টা করার সময় এই লগগুলি সহায়ক হতে পারে।
ব্রেডক্রম্ব লগগুলি গুগল অ্যানালিটিক্স দ্বারা চালিত, তাই ব্রেডক্রাম্ব লগগুলি পেতে আপনাকে আপনার ফায়ারবেস প্রকল্পের জন্য গুগল অ্যানালিটিক্স সক্ষম করতে হবে এবং আপনার অ্যাপ্লিকেশনটিতে Google Analytics জন্য ফায়ারবেস এসডিকে যুক্ত করতে হবে । এই প্রয়োজনীয়তাগুলি পূরণ হয়ে গেলে, আপনি যখন কোনও সমস্যার বিশদটি দেখেন তখন ব্রেডক্রম্ব লগগুলি স্বয়ংক্রিয়ভাবে লগস ট্যাবের মধ্যে কোনও ইভেন্টের ডেটা সহ অন্তর্ভুক্ত করা হয়।
Analytics এসডিকে স্বয়ংক্রিয়ভাবে screen_view
ইভেন্টটি লগ করে যা ব্রেডক্রাম্ব লগগুলিকে ক্র্যাশ, অ-মারাত্মক বা এএনআর ইভেন্টের আগে দেখা পর্দার একটি তালিকা দেখাতে সক্ষম করে। একটি screen_view
ব্রেডক্রাম্ব লগটিতে একটি firebase_screen_class
প্যারামিটার রয়েছে।
আপনি ইভেন্টের প্যারামিটার ডেটা সহ ব্যবহারকারীর সেশনের মধ্যে ম্যানুয়ালি লগ ইন করে এমন কোনও কাস্টম ইভেন্টের সাথে ব্রেডক্রম্ব লগগুলিও পপুলেট করা হয়। এই ডেটা ক্র্যাশ, অ-মারাত্মক বা এএনআর ইভেন্ট পর্যন্ত পরিচালিত ব্যবহারকারী ক্রিয়াকলাপগুলির একটি সিরিজ দেখাতে সহায়তা করতে পারে।
নোট করুন যে আপনি Google Analytics ডেটা সংগ্রহ এবং ব্যবহার নিয়ন্ত্রণ করতে পারেন, যার মধ্যে এমন ডেটা অন্তর্ভুক্ত রয়েছে যা ব্রেডক্রাম্ব লগগুলি পপুলেট করে।
অপ্ট-ইন রিপোর্টিং সক্ষম করুন
ডিফল্টরূপে, Crashlytics স্বয়ংক্রিয়ভাবে আপনার সমস্ত অ্যাপের ব্যবহারকারীদের জন্য ক্র্যাশ রিপোর্ট সংগ্রহ করে। ব্যবহারকারীদের তারা যে ডেটা প্রেরণ করে তার উপর আরও নিয়ন্ত্রণ দেওয়ার জন্য, আপনি স্বয়ংক্রিয় প্রতিবেদন অক্ষম করে অপ্ট-ইন রিপোর্টিং সক্ষম করতে পারেন এবং যখন আপনি আপনার কোডটিতে বেছে নেন তখন কেবল Crashlytics ডেটা প্রেরণ করতে পারেন।
স্থানীয়ভাবে স্বয়ংক্রিয় সংগ্রহ বন্ধ করুন:
অ্যাপল প্ল্যাটফর্ম
আপনার
Info.plist
ফাইলটিতে একটি নতুন কী যুক্ত করুন:- কী:
FirebaseCrashlyticsCollectionEnabled
- মান:
false
অ্যান্ড্রয়েড
আপনার
AndroidManifest.xml
ফাইলেরapplication
ব্লকে, স্বয়ংক্রিয় সংগ্রহ বন্ধ করতে একটিmeta-data
ট্যাগ যুক্ত করুন:<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
- কী:
রানটাইমে Crashlytics ডেটা সংগ্রহ ওভাররাইড কল করে নির্বাচিত ব্যবহারকারীদের জন্য সংগ্রহ সক্ষম করুন। ওভাররাইড মানটি আপনার অ্যাপ্লিকেশনটির পরবর্তী সমস্ত লঞ্চগুলিতে অব্যাহত রয়েছে যাতে Crashlytics স্বয়ংক্রিয়ভাবে সেই ব্যবহারকারীর জন্য প্রতিবেদনগুলি সংগ্রহ করতে পারে।
FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(true);
যদি ব্যবহারকারী পরে ডেটা সংগ্রহ থেকে অপ্ট-আউট করে, আপনি ওভাররাইড মান হিসাবে
false
পাস করতে পারেন, যা পরের বার ব্যবহারকারী অ্যাপটি চালু করার সময় প্রয়োগ করবে এবং সেই ব্যবহারকারীর জন্য পরবর্তী সমস্ত লঞ্চগুলি অব্যাহত রাখবে।
ক্র্যাশ অন্তর্দৃষ্টি ডেটা পরিচালনা করুন
ক্র্যাশ অন্তর্দৃষ্টিগুলি আপনাকে অন্যান্য ফায়ারবেস অ্যাপ্লিকেশনগুলির ট্রেসগুলির সাথে আপনার বেনামে স্ট্যাক ট্রেসগুলির তুলনা করে সমস্যাগুলি সমাধান করতে এবং আপনার সমস্যাটি বৃহত্তর প্রবণতার অংশ কিনা তা আপনাকে জানাতে সহায়তা করে। অনেক সমস্যার জন্য, ক্র্যাশ অন্তর্দৃষ্টি এমনকি ক্র্যাশটি ডিবাগ করতে সহায়তা করার জন্য সংস্থান সরবরাহ করে।
ক্র্যাশ অন্তর্দৃষ্টিগুলি সাধারণ স্থিতিশীলতার প্রবণতাগুলি সনাক্ত করতে একত্রিত ক্র্যাশ ডেটা ব্যবহার করে। আপনি যদি নিজের অ্যাপের ডেটা ভাগ না করতে পছন্দ করেন তবে আপনি Firebase কনসোলে আপনার Crashlytics ইস্যু তালিকার শীর্ষে ক্র্যাশ ইনসাইটস মেনু থেকে ক্র্যাশ অন্তর্দৃষ্টি থেকে বেরিয়ে যেতে পারেন।