เริ่มต้นใช้งาน Firebase Crashlytics

การเริ่มต้นอย่างรวดเร็วนี้จะอธิบายวิธีตั้งค่า Firebase Crashlytics ในแอปของคุณด้วยปลั๊กอิน Crashlytics Flutter เพื่อให้คุณได้รับรายงานข้อขัดข้องที่ครอบคลุมในคอนโซล Firebase

การตั้งค่า Crashlytics เกี่ยวข้องกับการใช้ทั้งเครื่องมือบรรทัดคำสั่งและ IDE ของคุณ ในการตั้งค่าให้เสร็จสิ้น คุณจะต้องบังคับให้ส่งข้อยกเว้นการทดสอบเพื่อส่งรายงานข้อขัดข้องครั้งแรกไปยัง Firebase

ก่อนจะเริ่ม

  1. หากคุณยังไม่ได้ดำเนินการ ให้ กำหนดค่าและเริ่มต้น Firebase ในโปรเจ็กต์ Flutter

  2. แนะนำ : หากต้องการรับคุณลักษณะต่างๆ เช่น ผู้ใช้ที่ไม่มีข้อขัดข้อง บันทึกการแสดงเส้นทาง และการแจ้งเตือนความเร็ว คุณต้องเปิดใช้ Google Analytics ในโครงการ Firebase

    แพลตฟอร์ม Android และ Apple ทั้งหมดที่รองรับโดย Crashlytics (ยกเว้น watchOS) สามารถใช้ประโยชน์จากคุณลักษณะเหล่านี้จาก Google Analytics

    ตรวจสอบว่าเปิดใช้งาน Google Analytics ในโปรเจ็กต์ Firebase แล้ว โดยไปที่ > การตั้งค่าโปรเจ็ กต์ > แท็บ การผสานการ ทำงาน จากนั้นทำตามคำแนะนำบนหน้าจอสำหรับ Google Analytics

ขั้นตอนที่ 1 : เพิ่ม Crashlytics ให้กับโครงการ Flutter ของคุณ

  1. จากรูทของโปรเจ็กต์ Flutter ให้รันคำสั่งต่อไปนี้เพื่อติดตั้งปลั๊กอิน Crashlytics Flutter:

    flutter pub add firebase_crashlytics
    
  2. จากไดเร็กทอรีรากของโปรเจ็กต์ Flutter ให้รันคำสั่งต่อไปนี้:

    flutterfire configure
    

    การเรียกใช้คำสั่งนี้ช่วยให้แน่ใจว่าการกำหนดค่า Firebase ของแอป Flutter เป็นปัจจุบัน และสำหรับ Android จะเพิ่มปลั๊กอิน Crashlytics Gradle ที่จำเป็นลงในแอปของคุณ

  3. เมื่อเสร็จแล้ว ให้สร้างโครงการ Flutter ของคุณใหม่:

    flutter run
    

ขั้นตอนที่ 2 : กำหนดค่าตัวจัดการข้อขัดข้อง

คุณสามารถตรวจจับข้อผิดพลาดทั้งหมดที่เกิดขึ้นภายในเฟรมเวิร์ก Flutter ได้โดยอัตโนมัติโดยแทนที่ FlutterError.onError ด้วย FirebaseCrashlytics.instance.recordFlutterFatalError :

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp();

  // Pass all uncaught errors from the framework to Crashlytics.
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;

  runApp(MyApp());
}

หากคุณกำลังใช้โซน การใช้เครื่องมือจัดการข้อผิดพลาดของโซนจะตรวจจับข้อผิดพลาดที่เฟรมเวิร์ก Flutter ตรวจจับไม่ได้ (ตัวอย่างเช่น ในตัวจัดการ onPressed ของปุ่ม):

void main() async {
  runZonedGuarded<Future<void>>(() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();

    FlutterError.onError =
       FirebaseCrashlytics.instance.recordFlutterFatalError;

    runApp(MyApp());
  }, (error, stack) =>
    FirebaseCrashlytics.instance.recordError(error, stack, fatal: true));
}

สำหรับตัวอย่างวิธีจัดการกับข้อผิดพลาดประเภทอื่นๆ โปรดดู ปรับแต่งรายงานข้อขัดข้อง

ขั้นตอนที่ 3 : บังคับให้การทดสอบขัดข้องเพื่อสิ้นสุดการตั้งค่า

หากต้องการตั้งค่า Crashlytics ให้เสร็จสิ้นและดูข้อมูลเริ่มต้นในแดชบอร์ด Crashlytics ของคอนโซล Firebase คุณต้องบังคับให้ส่งข้อยกเว้นการทดสอบ

  1. เพิ่มโค้ดลงในแอปของคุณเพื่อบังคับให้ส่งข้อยกเว้นการทดสอบ

    หากคุณได้เพิ่มตัวจัดการข้อผิดพลาดที่เรียก FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) ไปยัง Zone ระดับบนสุด คุณสามารถใช้รหัสต่อไปนี้เพื่อเพิ่มปุ่มในแอปของคุณที่เมื่อกดแล้ว ข้อยกเว้นการทดสอบ:

    TextButton(
        onPressed: () => throw Exception(),
        child: const Text("Throw Test Exception"),
    ),
    
  2. สร้างและเรียกใช้แอปของคุณ

  3. บังคับให้ส่งข้อยกเว้นการทดสอบเพื่อส่งรายงานแรกของแอป:

    1. เปิดแอปของคุณจากอุปกรณ์ทดสอบหรือโปรแกรมจำลอง

    2. ในแอปของคุณ ให้กดปุ่มยกเว้นการทดสอบที่คุณเพิ่มโดยใช้โค้ดด้านบน

  4. ไปที่ แดชบอร์ด Crashlytics ของคอนโซล Firebase เพื่อดูข้อขัดข้องของการทดสอบ

    หากคุณได้รีเฟรชคอนโซลแล้วและยังไม่เห็นการทดสอบขัดข้องหลังจากผ่านไป 5 นาที ให้เปิดใช้การบันทึกการแก้ไขข้อบกพร่อง เพื่อดูว่าแอปของคุณส่งรายงานข้อขัดข้องหรือไม่


และนั่นแหล่ะ! Crashlytics กำลังตรวจสอบแอปของคุณเพื่อหาข้อขัดข้อง และข้อผิดพลาดที่ไม่ร้ายแรงและ ANR ใน Android ไปที่ แดชบอร์ดของ Crashlytics เพื่อดูและตรวจสอบรายงานและสถิติทั้งหมดของคุณ

ขั้นตอนถัดไป