| Chọn nền tảng: | iOS+ Android Web Flutter Unity |
Hãy sử dụng hướng dẫn này nếu bạn đã làm theo hướng dẫn bắt đầu sử dụng nhưng vẫn không thấy sự cố trong trang tổng quan Crashlytics.
Buộc xảy ra sự cố để kiểm thử quá trình triển khai
Thêm mã vào ứng dụng để bạn có thể dùng mã đó nhằm buộc xảy ra sự cố thử nghiệm.
Thêm nút kiểm thử hoặc trình kích hoạt định tuyến vào ứng dụng React, Next.js hoặc Angular của bạn để gửi lỗi thời gian chạy khi người dùng nhấp vào:
// Trigger an unhandled exception on button click or route load function handleTestCrash() { throw new Error("Crashlytics Web SDK Test Unhandled Error!"); }Nếu bạn đã định cấu hình tính năng tự động ghi lại lỗi bằng
<FirebaseCrashlytics>(React hoặc Next.js),provideCrashlytics(Angular) hoặc<CrashlyticsRoutes>(React Router), thì việc gửi lỗi này sẽ tự động ghi lại ngoại lệ và lên lịch tải ngoại lệ đó lên.Tạo và chạy ứng dụng, sau đó kích hoạt lỗi kiểm thử để ứng dụng gửi báo cáo sự cố đầu tiên đến Firebase.
Trong bảng điều khiển Firebase, hãy chuyển đến trang tổng quan DevOps & Engagement (DevOps và Mức độ tương tác) > Crashlytics để kiểm tra báo cáo sự cố thử nghiệm:
Chọn ứng dụng web của bạn trong bộ chọn thả xuống ở đầu trang.
Làm mới trang. Trường hợp ngoại lệ kiểm thử của bạn sẽ xuất hiện trong bảng Vấn đề trong vòng vài phút.
Nếu bạn đã làm mới bảng điều khiển và vẫn không thấy sự cố kiểm thử sau 5 đến 10 phút, hãy xem phần tiếp theo về cách khắc phục sự cố thiết lập.
Khắc phục sự cố khi thiết lập
Nếu bạn đã kích hoạt một sự cố kiểm thử mà vẫn không thấy báo cáo trong trang tổng quan Crashlytics sau 5 đến 10 phút, hãy thử chạy lại quy trình thiết lập hoặc xác minh các cấu hình dự án sau đây trong bảng điều khiển:
Chạy lại quy trình thiết lập Crashlytics: Bạn có thể chạy lại lệnh thiết lập CLI Firebase (
firebase crashlytics:setup) một cách an toàn hoặc hoàn tất quy trình thiết lập trong bảng điều khiển Firebase như mô tả trong Bước 1 của hướng dẫn bắt đầu sử dụng. Việc chạy lại quy trình thiết lập sẽ tự động bật mọi API bị thiếu và sửa bộ chứafirebase-telemetryCloud Logging cũng như bồn lưu trữ định tuyến.Kiểm tra thông tin thanh toán và quyền IAM: Đảm bảo rằng dự án Firebase của bạn đang sử dụng gói giá Blaze trả tiền theo mức dùng và tài khoản của bạn có quyền Chủ sở hữu đối với dự án khi chạy bước thiết lập.
Xác minh các quy tắc hạn chế đối với khoá API
firebasetelemetry.googleapis.com: Trên trang Thông tin xác thực của bảng điều khiển Google Cloud, hãy chọn khoá API được định cấu hình trong đối tượngfirebaseConfig(ví dụ:Browser key (auto created by Firebase)). Nếu khoá đó đã bật các quy tắc hạn chế đối với API, hãy xác minh rằng Firebase Telemetry API (firebasetelemetry.googleapis.com) có trong danh sách API được phép. Nếu mục tiêu này bị thiếu trong khoá API bị hạn chế, thì các yêu cầu tải lên mạng sẽ không thành công và xuất hiện lỗi HTTP 403 (Bị cấm) trong bảng điều khiển của trình duyệt.Kiểm tra các API Google Cloud đã bật: Trong trang API và dịch vụ đã bật của bảng điều khiển Google Cloud , hãy xác minh rằng Firebase Telemetry API (
firebasetelemetry.googleapis.com), Firebase Telemetry Admin API (firebasetelemetryadmin.googleapis.com), Cloud Logging API (logging.googleapis.com) và Cloud Storage (storage.googleapis.com) đã được bật cho dự án của bạn.Xác minh Log Analytics trên bộ chứa ghi nhật ký: Trong Google Cloud bảng điều khiển Trang Lưu trữ nhật ký, hãy xác minh rằng bộ chứa
firebase-telemetry(vị tríglobal) tồn tại và đã bật Log Analytics, đồng thời kiểm tra Trang Bộ định tuyến nhật ký để xác nhận rằng bồn lưu trữfirebase-telemetry-routingtồn tại.
Ghi lại và xoá ngoại lệ kiểm thử theo cách thủ công
Nếu bạn muốn xác minh ngay quá trình truyền từ đầu đến cuối mà không cần đợi
tải trang hoặc phân lô bộ nhớ, hãy sử dụng recordError cùng với flush:
import { recordError, flush, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase'; // Shared initialization script
const crashlytics = getCrashlytics(app);
async function triggerImmediateTestCrash() {
const error = new Error("Crashlytics Web SDK Test Handled Error!");
// Capture the error with immediate priority and custom diagnostic metadata
recordError(crashlytics, error, {
priority: 'IMMEDIATE',
testEvent: true,
environment: 'staging_verification'
});
// Force an immediate upload before the browser terminates or reloads
await flush(crashlytics);
console.log("Test error flushed to Crashlytics successfully.");
}
Các bước tiếp theo
Nhận báo cáo sự cố dễ đọc — Thiết lập tính năng tự động tải bản đồ nguồn (
.js.map) lên để dấu vết ngăn xếp trong môi trường phát hành công khai hiển thị tên tệp và số dòng ban đầu.Tuỳ chỉnh báo cáo sự cố — Tìm hiểu cách báo cáo các ngoại lệ được xử lý, thêm khoá tuỳ chỉnh, buộc xoá bản ghi đo từ xa và định cấu hình lấy mẫu.