Ikuti semua informasi yang diumumkan di Firebase Summit, dan pelajari bagaimana Firebase dapat membantu Anda mempercepat pengembangan aplikasi dan menjalankan aplikasi dengan percaya diri. Pelajari Lebih Lanjut

Sesuaikan laporan kerusakan Firebase Crashlytics Anda

Tetap teratur dengan koleksi Simpan dan kategorikan konten berdasarkan preferensi Anda.

Panduan ini menjelaskan cara menyesuaikan laporan kerusakan Anda menggunakan Firebase Crashlytics SDK. Secara default, Crashlytics secara otomatis mengumpulkan laporan kerusakan untuk semua pengguna aplikasi Anda (Anda dapat menonaktifkan pelaporan kerusakan otomatis dan mengaktifkan pelaporan keikutsertaan untuk pengguna Anda). Crashlytics menyediakan empat mekanisme logging di luar kotak: kunci khusus , log khusus , pengenal pengguna , dan pengecualian yang tertangkap .

Tambahkan kunci khusus

Kunci khusus membantu Anda mendapatkan status spesifik aplikasi yang mengarah ke error. Anda dapat mengaitkan pasangan kunci/nilai arbitrer dengan laporan kerusakan, lalu menggunakan kunci khusus untuk menelusuri dan memfilter laporan kerusakan di Firebase console.

  • Di dasbor Crashlytics , Anda dapat menelusuri masalah yang cocok dengan kunci khusus.

  • Saat Anda meninjau masalah tertentu di konsol, Anda dapat melihat kunci khusus yang terkait untuk setiap peristiwa ( Subtab tombol ) dan bahkan memfilter peristiwa dengan tombol khusus ( Menu filter di bagian atas halaman).

Gunakan metode instance setCustomKey untuk menyetel pasangan kunci/nilai. Perhatikan bahwa setCustomKey kelebihan beban agar parameter value menerima argumen primitif atau String apa pun. Berikut beberapa contohnya:

Java

FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();

crashlytics.setCustomKey("my_string_key", "foo" /* string value */);

crashlytics.setCustomKey("my_bool_key", true /* boolean value */);

crashlytics.setCustomKey("my_double_key", 1.0 /* double value */);

crashlytics.setCustomKey("my_float_key", 1.0f /* float value */);

crashlytics.setCustomKey("my_int_key", 1 /* int value */);

Kotlin+KTX

val crashlytics = Firebase.crashlytics
crashlytics.setCustomKeys {
    key("my_string_key", "foo") // String value
    key("my_bool_key", true)    // boolean value
    key("my_double_key", 1.0)   // double value
    key("my_float_key", 1.0f)   // float value
    key("my_int_key", 1)        // int value
}

Anda juga dapat mengubah nilai kunci yang ada dengan memanggil kunci dan menyetelnya ke nilai yang berbeda. Sebagai contoh:

Java

FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();

crashlytics.setCustomKey("current_level", 3);
crashlytics.setCustomKey("last_UI_action", "logged_in");

Kotlin+KTX

val crashlytics = Firebase.crashlytics
crashlytics.setCustomKeys {
    key("current_level", 3)
    key("last_UI_action", "logged_in")
}

Tambahkan pasangan kunci/nilai secara massal dengan meneruskan instance CustomKeysAndValues ​​ke metode instance setCustomKeys :

Java

CustomKeysAndValues keysAndValues = new CustomKeysAndValues.Builder()
.putString("string key", "string value")
.putString("string key 2", "string  value 2")
.putBoolean("boolean key", True)
.putBoolean("boolean key 2", False)
.putFloat("float key", 1.01)
.putFloat("float key 2", 2.02)
.build();

FirebaseCrashlytics.getInstance().setCustomKeys(keysAndValues);

Kotlin+KTX

Untuk Kotlin, fungsi yang ada lebih sederhana daripada menggunakan pembuat CustomKeysAndValues .

crashlytics.setCustomKeys {
  key("str_key", "hello")
  key("bool_key", true)
  key("int_key", 1)
  key("long_key", 1L)
  key("float_key", 1.0f)
  key("double_key", 1.0)
}

Tambahkan pesan log khusus

Untuk memberi Anda lebih banyak konteks untuk peristiwa yang mengarah ke error, Anda dapat menambahkan log Crashlytics kustom ke aplikasi Anda. Crashlytics mengaitkan log dengan data error Anda dan menampilkannya di halaman Crashlytics di Firebase console , di bawah tab Log .

Gunakan log untuk membantu menunjukkan masalah. Sebagai contoh:

Java

FirebaseCrashlytics.getInstance().log("message");

Kotlin+KTX

Firebase.crashlytics.log("message")

Tetapkan pengidentifikasi pengguna

Untuk mendiagnosis masalah, mengetahui pengguna mana yang mengalami error tertentu sering kali membantu. Crashlytics menyertakan cara untuk mengidentifikasi pengguna secara anonim dalam laporan kerusakan Anda.

Untuk menambahkan ID pengguna ke laporan Anda, tetapkan setiap pengguna pengidentifikasi unik dalam bentuk nomor ID, token, atau nilai hash:

Java

FirebaseCrashlytics.getInstance().setUserId("user123456789");

Kotlin+KTX

Firebase.crashlytics.setUserId("user123456789")

Jika Anda perlu menghapus pengenal pengguna setelah Anda menyetelnya, setel ulang nilainya ke string kosong. Menghapus pengenal pengguna tidak menghapus data Crashlytics yang ada. Jika Anda perlu menghapus catatan yang terkait dengan ID pengguna, hubungi dukungan Firebase .

(Khusus Android NDK) Tambahkan metadata ke laporan kerusakan NDK

Anda dapat secara opsional menyertakan header crashlytics.h dalam kode C++ untuk menambahkan metadata ke laporan kerusakan NDK, seperti kunci khusus , log khusus , pengenal pengguna . Semua opsi ini dijelaskan pada halaman ini di atas.

crashlytics.h tersedia sebagai library C++ header-only di Firebase Android SDK GitHub Repository .

Baca komentar di file header untuk petunjuk penggunaan NDK C++ API.

Laporkan pengecualian non-fatal

Selain melaporkan kerusakan aplikasi secara otomatis, Crashlytics memungkinkan Anda merekam pengecualian non-fatal dan mengirimkannya kepada Anda saat aplikasi diluncurkan lagi.

Gunakan metode recordException untuk merekam pengecualian non-fatal di blok catch aplikasi Anda. Sebagai contoh:

Java

try {
    methodThatThrows();
} catch (Exception e) {
    FirebaseCrashlytics.getInstance().recordException(e);
    // handle your exception here
}

Kotlin+KTX

try {
    methodThatThrows()
} catch (e: Exception) {
    Firebase.crashlytics.recordException(e)
    // handle your exception here
}

Semua pengecualian yang tercatat muncul sebagai masalah non-fatal di Firebase console. Ringkasan masalah berisi semua informasi status yang biasanya Anda dapatkan dari kerusakan, bersama dengan perincian menurut versi Android dan perangkat keras.

Crashlytics memproses pengecualian pada utas latar belakang khusus untuk meminimalkan dampak kinerja pada aplikasi Anda. Untuk mengurangi lalu lintas jaringan pengguna Anda, Crashlytics mengelompokkan pengecualian yang dicatat dalam log dan mengirimkannya saat aplikasi diluncurkan lagi.

Aktifkan pelaporan keikutsertaan

Secara default, Crashlytics secara otomatis mengumpulkan laporan kerusakan untuk semua pengguna aplikasi Anda. Untuk memberi pengguna lebih banyak kontrol atas data yang mereka kirim, Anda dapat mengaktifkan pelaporan keikutsertaan dengan menonaktifkan pelaporan otomatis dan hanya mengirim data ke Crashlytics jika Anda memilih untuk melakukannya dalam kode Anda:

  1. Di blok application file AndroidManifest.xml Anda, tambahkan tag meta-data untuk menonaktifkan pengumpulan otomatis:

    <meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="false" />
    
  2. Aktifkan pengumpulan untuk pengguna tertentu dengan memanggil penggantian pengumpulan data Crashlytics saat runtime. Nilai penggantian tetap ada di seluruh peluncuran aplikasi Anda sehingga Crashlytics dapat mengumpulkan laporan secara otomatis. Untuk menyisih dari pelaporan kerusakan otomatis, berikan false sebagai nilai penggantian. Jika disetel ke false , nilai baru tidak berlaku hingga aplikasi dijalankan berikutnya.

    Java

    FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);

    Kotlin+KTX

    Firebase.crashlytics.setCrashlyticsCollectionEnabled(true)

Kelola data Crash Insights

Crash Insights membantu Anda menyelesaikan masalah dengan membandingkan pelacakan tumpukan anonim Anda dengan pelacakan dari aplikasi Firebase lain dan memberi tahu Anda jika masalah Anda merupakan bagian dari tren yang lebih besar. Untuk banyak masalah, Crash Insights bahkan menyediakan sumber daya untuk membantu Anda men-debug kerusakan tersebut.

Crash Insights menggunakan data kerusakan agregat untuk mengidentifikasi tren stabilitas umum. Jika Anda memilih untuk tidak membagikan data aplikasi, Anda dapat menyisih dari Crash Insights dari menu Crash Insights di bagian atas daftar masalah Crashlytics di Firebase console .