نحوه کار با Firebase Crash Reporting

نحوه کار با Firebase Crash Reporting

امروزه کاربران گوشی های اندروید به بیش از یک میلیارد نفر رسیده اند و هرروزه هزاران نفر نیز به جمع کاربران این سیستم عامل محبوب می پیوندند، اما کسب اطمینان از این بابت که استفاده از اپلیکیشن شما برای تمامی آنها لذت بخش بوده و بدون هیچگونه مشکلی صورت می پذیرد، کار چندان آسانی نمی باشد.

خصوصیت های گوشی های اندروید بسیار متنوع است و شاهد تفاوت هایی در سطوح API، اندازه های صفحات نمایش، چگالی پیکسل ها و حسگرهای سخت افزاری هستیم. از طرفی فروشندگان سخت افزار نیز با شخصی سازی اندروید برای گوشی های خود شرایط را دشوارتر می کنند.

از آنجایی که متغیرهای گوناگونی در عملکرد درست یک اپلیکیشن دخیل اند، احتمال کرش آن در برخی از گوشی ها و تحت شرایط مختلف بسیار بالا می باشد. با جمع آوری و تجزیه و تحلیل اطلاعات درباره این کرش ها، شما قادر به رفع مشکلات اپلیکیشن می باشید که رضایت کاربران را نیز در پی خواهد داشت.

در این مقاله قصد داریم به نحوه استفاده از Firebase که یک راه حل برای گزارش کرش است بپردازیم، این ابزار رایگان بوده و ارائه دهنده امکانات کاربردی متعددی می باشد، یکپارچه سازی آن با هر اپلیکیشن اندروید نیز به سادگی صورت می پذیرد.

1. ساخت یک فایل پیکربندی Firebase

هر پروژه اندروید استودیو که Firebase را مورد استفاده قرار می دهد باید با استفاده از Firebase console گوگل رجیستر شده باشد، زمانی که وارد کنسول شدید، بر روی دکمه Create New Project کلیک کرده و فرآیند ثبت نام را آغاز نمایید.

blog_23178_1

در دیالوگی که نمایش داده می شود، نام مناسبی را برای پروژه خود انتخاب کنید و کشور محل سکونت خود را انتخاب نمایید.

blog_23178_2

در گام بعدی بر روی دکمه Add Firebase to your Android app کلیک کنید.

blog_23178_3

در این مرحله از شما خواسته می شود تا یک نام پکیج برای اپلیکیشن اندروید خود انتخاب نمایید. مطمئن شوید که مقدار وارد شده با نام پکیجی که در پروژه اندروید استودیو مورد استفاده قرار داده اید، هم خوانی دارد.

blog_23178_4

در نهایت دکمه Add app را بزنید، مرورگر باید به طور خود عملیات دانلود یک فایل به نام google-services.json را آغاز نماید، این فایل دربرگیرنده جزئیات پیکربندی مانند آی دی پروژه Firebase، کلید API و آی دی اپلیکیشن بوده که برای اپلیکیشن شما ساخته شده است.

زمانی که عملیات دانلود کامل شد، فایل را به دایرکتوری app در پروژه اندروید استودیوی خود منتقل کنید.

2. پیکربندی اپلیکیشن

جهت استفاده از Firebase در پروژه اندروید استودیو لازم است افزونه Google Services Gradle را به عنوان یک وابستگی در فایل build.gradle سطح بالا اضافه کنید که در دایرکتوری روت پروژه موجود است.

buildscript {

dependencies {

classpath 'com.google.gms:google-services:3.0.0'

}

}

لازم است افزونه Google Services Gradle را اعمال کنید و پس از آن کد زیر را به آخر فایل build.gradle ماژول اپلیکیشن اضافه کنید:

apply plugin: 'com.google.gms.google-services'

در این مرحله قادر به اضافه کردن Firebase Crash Reporting SDK به عنوان یک وابستگی کامپایل هستید.

compile 'com.google.firebase:firebase-crash:9.4.0'

زین پس Firebase به طور خودکار یک گزارش کرش را با هر بار کرش اپلیکیشن تولید می کند.

3. تولید گزارش خطا به طور دستی

زمانی که اپلیکیشن با استثناها یا خطاها مواجه شود کرش می کند، اما چه بر سر استثناهایی می آید که توسط بلوک های try…catch مورد توجه برنامه نویس قرار گرفته اند؟ Firebase این دسته از خطاها را به طور خودکار گزارش نمی دهد، چرا که تصور می کند شما از وجود آنها مطلع هستید، اما در برخی از شرایط مایلید آنها را در گزارش کرش های خود مشاهده کنید.

به منظور تولید گزارش کرش به طور دستی، باید از متدی به نام ()FirebaseCrash.report استفاده کنید، تنها آرگومنت این متد یک آبجکت Throwable می باشد، از این رو معمولا متد در داخل یک بلوک catch صدا زده می شود. قطعه کد زیر نحوه کار با آن در هنگام بررسی IOException را نمایش می دهد:

try {

FileInputStream is = new FileInputStream("/non-existent/file");

int c = is.read();

} catch(IOException e) {

FirebaseCrash.report(e); // Generate report

}

در زیر یک نمونه از گزارش کرش در کنسول Firebase را می بینید:

blog_23178_5

همانطور که مشاهده می کنید، گزارشات کرش مشابه گروه بندی شده اند و یک کلاستر را تشکیل داده اند. با کلیک بر روی کلاستر و زدن دکمه View Details می توانید نگاهی به هریک از گزارشات کرش که درون آن هستند بیندازید.

blog_23178_6

4. افزودن Log Messages به گزارشات کرش

با این وجود که گزارشات کرش Firebase شامل stack traces و داده های تشخیص متعددی می باشد، شاید گاهی اوقات بخواهید اطلاعات دقیق تری از شرایطی که موجب کرش اپلیکیشن شده بدست آورید. برای مثال ممکن است مایل به دانستن مقادیر دقیق برخی از متغیرهای محلی مهم باشید.

یک روش آسان برای گنجاندن چنین اطلاعاتی در گزارش خطا، تولید پیام های لاگ کاستوم با استفاده از متد ()FirebaseCrash.log می باشد که به یک رشته به عنوان تنها آرگومنت خود نیازمند است.

در زیر قطعه کدی را که یک پیام لاگ کاستوم تولید می کند مشاهده می نمایید:

FirebaseCrash.log("This is a custom log message");

توجه داشته باشید که پیام لاگ کاستوم تنها در گزارش کرش بعدی درج می شود.

در کنسول Firebase قادر به مشاهده پیام های لاگ در بخش آخر گزارش کرش هستید.

blog_23178_7

جمع بندی

هیچگاه نباید کرش ها را نادیده گرفت، زیرا آنها موجب از بین رفتن علاقه کاربر نسبت به اپلیکیشن می شوند، علاوه بر این، چنین کرش هایی به از دست رفتن داده نیز می انجامند. با استفاده از سرویس هایی مانند Firebase به طور منظم قادر به کنترل و نظارت بر کرش های اپلیکیشن و آپلود راه حل رفع آن به سرعت می باشید. گنجاندن جزئیاتی درباره رفع خطاها در لاگ تغییرات اپلیکیشن ایده بسیار خوبی است، چرا که از این طریق کاربران متوجه می شوند که به این مشکلات اهمیت داده و آنها را رفع کرده اید. جهت کسب اطلاعات بیشتر درباره گزارش خطا Firebase می توانید به وب سایت رسمی آن مراجعه نمایید.

 

https://code.tutsplus.com برگرفته از

اینها را هم بخوانید

نظرات کاربران

  1. Reyhaneh Heydari
    Reyhaneh Heydari
    سلام. چون تاریخ پست و کامنت ها قدیمی هست مجدد سوال رو تکرار میکنم و پیشاپیش عذرخواهی میکنم! با توجه شنیده ها جدیدا سرویس مسیجینگ fcm که قبلتر برای ایران آزاد بود تحریم شده ! سرویس Firebase Crash Reporting تحریم نیست و با استفاده از اون برای اپلیکیشن مشکلی پیش نمیاد؟ اگر بعدا فیلتر بشه اپلیکیشن به مشکل میخوره؟

    به این نظر پاسخ دهید
  2. avatar
    مرتضی
    من هم سوال دوستمون رو دارم ایا امکان استفاده برای کاربران ایرانی هست یا خیر؟؟!

    به این نظر پاسخ دهید
    1. اپریویو
      اپریویو (ادمین)
      با سلام بله، امکان استفاده از آن وجود دارد، اما برای ورود به پنل باید از ...شکن استفاده کنید. موفق باشید

      به این نظر پاسخ دهید
  3. avatar
    MohammadReza
    بدون تغییر آی پی نمیشه به کنسول فایربیس دسترسی داشت. آیا زمانی برنامه ای از فایربیس استفاده میکنه برای کاربران ایرانی به راحتی همه چیز قابل اجراست یا باز هم همین مشکل وجود داره؟

    به این نظر پاسخ دهید