Google is committed to advancing racial equity for Black communities. See how.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Tùy chỉnh các báo cáo sự cố Firebase Crashlytics của bạn

Hướng dẫn này mô tả cách tùy chỉnh các báo cáo sự cố của bạn bằng SDK Firebase Crashlytics. Theo mặc định, Crashlytics tự động thu thập các báo cáo sự cố cho tất cả người dùng ứng dụng của bạn (thay vào đó bạn có thể tắt báo cáo sự cố tự động và bật báo cáo chọn tham gia cho người dùng của mình). Crashlytics cung cấp bốn cơ chế ghi nhật ký : khóa tùy chỉnh , nhật ký tùy chỉnh , số nhận dạng người dùngngoại lệ bị bắt .

Thêm khóa tùy chỉnh

Các phím tùy chỉnh giúp bạn có được trạng thái cụ thể của ứng dụng dẫn đến sự cố. Bạn có thể liên kết các cặp khóa / giá trị tùy ý với các báo cáo sự cố của mình và xem chúng trong bảng điều khiển Firebase .

Sử dụng phương thức cá thể setCustomKey để đặt các cặp khóa / giá trị:

Java

setCustomKey bị quá tải cho tham số value để chấp nhận bất kỳ đối số nguyên thủy hoặc Chuỗi nào. Ví dụ:

// Set a key to a string.
FirebaseCrashlytics.getInstance().setCustomKey("str_key", "hello");

// Set a key to a boolean.
FirebaseCrashlytics.getInstance().setCustomKey("bool_key", true);

// Set a key to an int.
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 1);

// Set a key to a long.
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 1L);

// Set a key to a float.
FirebaseCrashlytics.getInstance().setCustomKey("float_key", 1.0f);

// Set a key to a double.
FirebaseCrashlytics.getInstance().setCustomKey("double_key", 1.0);
Kotlin
// Set a key to a string.
FirebaseCrashlytics.getInstance().setCustomKey("str_key", "hello")

// Set a key to a boolean.
FirebaseCrashlytics.getInstance().setCustomKey("bool_key", true)

// Set a key to an int.
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 1)

// Set a key to an long.
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 1L)

// Set a key to a float.
FirebaseCrashlytics.getInstance().setCustomKey("float_key", 1.0f)

// Set a key to a double.
FirebaseCrashlytics.getInstance().setCustomKey("double_key", 1.0)

Bạn cũng có thể sửa đổi giá trị của một khóa hiện có bằng cách gọi khóa đó và đặt nó thành một giá trị khác. Ví dụ:

Java
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 50);

// Set int_key from 50 to 100.
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 100);
Kotlin
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 50)

// Set int_key from 50 to 100.
FirebaseCrashlytics.getInstance().setCustomKey("int_key", 100)

Thêm thông điệp tường trình tùy chỉnh

Để cung cấp cho mình nhiều bối cảnh hơn cho các sự kiện dẫn đến sự cố, bạn có thể thêm nhật ký Crashlytics tùy chỉnh vào ứng dụng của mình. Crashlytics liên kết nhật ký với dữ liệu sự cố của bạn và hiển thị chúng trong trang Crashlytics của bảng điều khiển Firebase , trong tab Nhật ký .

Sử dụng log để giúp xác định các vấn đề. Ví dụ:

Java

FirebaseCrashlytics.getInstance().log("Higgs-Boson detected! Bailing out");

Kotlin + KTX

FirebaseCrashlytics.getInstance().log("Higgs-Boson detected! Bailing out")

Đặt định danh người dùng

Để chẩn đoán sự cố, thường hữu ích khi biết người dùng nào của bạn gặp sự cố. Crashlytics bao gồm một cách để xác định người dùng ẩn danh trong các báo cáo sự cố của bạn.

Để thêm ID người dùng vào báo cáo của bạn, chỉ định cho mỗi người dùng một mã định danh duy nhất dưới dạng số ID, mã thông báo hoặc giá trị băm:

Java

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

Kotlin + KTX

FirebaseCrashlytics.getInstance().setUserId("12345")

Nếu bạn cần xóa số nhận dạng người dùng sau khi đặt, hãy đặt lại giá trị thành chuỗi trống. Xóa một định danh người dùng không xóa các bản ghi Crashlytics hiện có. Nếu bạn cần xóa các bản ghi liên quan đến ID người dùng, hãy liên hệ với bộ phận hỗ trợ của Firebase.

Báo cáo các trường hợp ngoại lệ không gây tử vong

Ngoài việc tự động báo cáo sự cố của ứng dụng, Crashlytics cho phép bạn ghi lại các trường hợp ngoại lệ không nghiêm trọng và gửi chúng cho bạn vào lần tiếp theo ứng dụng của bạn khởi chạy.

Sử dụng phương pháp recordException để ghi lại các trường hợp ngoại lệ không gây tử vong trong các khối catch ứng dụng của bạn. Ví dụ:

Java

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

Kotlin + KTX

try {
    methodThatThrows()
} catch (e: Exception) {
    FirebaseCrashlytics.getInstance().recordException(e)
    // ...handle the exception.
}
Cảnh báo: Nếu bạn muốn bao gồm một giá trị duy nhất (ví dụ: ID người dùng hoặc dấu thời gian) trong thông báo ngoại lệ của bạn, hãy sử dụng khóa tùy chỉnh thay vì thêm giá trị trực tiếp vào thông báo ngoại lệ. Thêm giá trị trực tiếp có thể dẫn đến một số vấn đề và có thể khiến Crashlytics hạn chế lỗi báo cáo trong ứng dụng của bạn.

Tất cả các trường hợp ngoại lệ được ghi lại xuất hiện dưới dạng các sự cố không nghiêm trọng trong bảng điều khiển Firebase. Tóm tắt sự cố chứa tất cả thông tin trạng thái bạn thường nhận được từ các sự cố, cùng với sự cố do phiên bản Android và thiết bị phần cứng.

Crashlytics xử lý các trường hợp ngoại lệ trên một luồng nền chuyên dụng để giảm thiểu tác động hiệu suất đến ứng dụng của bạn. Để giảm lưu lượng truy cập mạng của người dùng của bạn, các đợt Crashlytics đã ghi lại các ngoại lệ cùng nhau và gửi cho họ vào lần tiếp theo khi ứng dụng khởi chạy.

Cho phép báo cáo chọn tham gia

Theo mặc định, Crashlytics tự động thu thập các báo cáo sự cố cho tất cả người dùng ứng dụng của bạn. Để cung cấp cho người dùng quyền kiểm soát nhiều hơn đối với dữ liệu họ gửi, bạn có thể bật báo cáo chọn tham gia cho người dùng của mình bằng cách vô hiệu hóa bộ sưu tập tự động và chỉ khởi tạo Crashlytics cho người dùng đã chọn:

  1. Trong khối application của tệp AndroidManifest.xml của bạn, hãy thêm thẻ meta-data để tắt bộ sưu tập tự động:

     <meta-data
        android:name="firebase_crashlytics_collection_enabled"
        android:value="false" />
     
  2. Cho phép thu thập cho người dùng được chọn bằng cách gọi ghi đè bộ sưu tập dữ liệu Crashlytics khi chạy. Giá trị ghi đè vẫn tồn tại trong các lần khởi chạy ứng dụng của bạn để Crashlytics có thể tự động thu thập báo cáo. Để từ chối báo cáo sự cố tự động, chuyển false thành giá trị ghi đè. Khi được đặt thành false , giá trị mới sẽ không áp dụng cho đến lần chạy ứng dụng tiếp theo.

    Java

    FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true);

    Kotlin + KTX

    FirebaseCrashlytics.getInstance().setCrashlyticsCollectionEnabled(true)

Quản lý dữ liệu sự cố

Crash Insights giúp bạn giải quyết các vấn đề bằng cách so sánh dấu vết ngăn xếp ẩn danh của bạn với dấu vết từ các ứng dụng Firebase khác và cho bạn biết nếu sự cố của bạn là một phần của xu hướng lớn hơn. Đối với nhiều vấn đề, Crash Insights thậm chí còn cung cấp tài nguyên để giúp bạn gỡ lỗi sự cố.

Crash Insights sử dụng dữ liệu sự cố tổng hợp để xác định xu hướng ổn định phổ biến. Nếu bạn không muốn chia sẻ dữ liệu của ứng dụng, bạn có thể từ chối Crash Insights từ menu Crash Insights ở đầu danh sách sự cố Crashlytics của bạn trong bảng điều khiển Firebase .