| Pilih platform: | iOS+ Android Web Flutter Unity |
Di Firebase console (DevOps & Engagement > dasbor Crashlytics), Anda dapat mengklik masalah dan mendapatkan laporan peristiwa yang mendetail. Anda dapat menyesuaikan laporan tersebut dan mengelola pengumpulan telemetri untuk membantu lebih memahami situasi yang terjadi di aplikasi web Anda:
- Melaporkan pengecualian yang ditangani secara terprogram
- Menambahkan kunci kustom
- Memaksa penghapusan data telemetri untuk rutinitas berumur pendek
- Mengonfigurasi frekuensi sampling
- Menonaktifkan atau mengaktifkan pengumpulan telemetri
Melaporkan pengecualian yang ditangani secara terprogram
Anda dapat mencatat pengecualian yang ditangani secara manual menggunakan recordError. Error pemilihan rute dan pengecualian yang tidak tertangkap akan otomatis ditangkap oleh batas error framework Anda.
Berikut cara melacak prevalensi kegagalan dan atribut diagnostik di seluruh pengguna Anda:
import { recordError, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase';
const crashlytics = getCrashlytics(app);
async function submitPaymentForm() {
try {
await api.processTransaction();
} catch (error) {
// Manually record handled exceptions with diagnostic context
recordError(crashlytics, error, {
userTier: 'Premium Gold',
checkoutStage: 'BillingAddressVerification',
transactionCode: 'tx_8412_err',
retryAttempts: 2
});
showFallbackBanner(error);
}
}
Menambahkan kunci kustom
Kunci metadata kustom membantu Anda memahami status aplikasi atau alur kerja pengguna tertentu menjelang error.
Anda dapat mencatat aktivitas pengguna, status sesi, dan detail diagnostik secara langsung sebagai atribut kustom nilai kunci menggunakan parameter metadata opsional saat memanggil recordError:
import { recordError, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase'; // Shared initialization script
const crashlytics = getCrashlytics(app);
// Pass custom key-value diagnostic metadata within recordError
recordError(crashlytics, error, {
userTier: 'Premium Gold',
checkoutStage: 'BillingAddressVerification',
transactionCode: 'tx_8412_err',
retryAttempts: 2,
breadcrumb: 'User opened shopping cart',
lastAction: 'Click Checkout Button'
});
Atribut kustom ini disimpan dalam laporan pengecualian dan muncul di tab Keys dalam tampilan masalah dasbor Crashlytics.
Memaksa penghapusan data telemetri
Secara default, mesin telemetri web mengelompokkan log ke dalam segmen memori untuk menghemat masa pakai baterai, performa CPU, dan bandwidth jaringan. Namun, untuk lingkungan eksekusi yang berumur singkat, log harus segera diupload sebelum konteks eksekusi dihancurkan.
Anda dapat menggunakan perintah flush asinkron untuk segera mengirim semua error dalam antrean ke backend:
import { recordError, flush, getCrashlytics } from '@firebase/crashlytics';
import { app } from './lib/firebase';
const crashlytics = getCrashlytics(app);
async function handleApplicationCrash(error: Error) {
// Capture the error with immediate priority
recordError(crashlytics, error, { priority: 'IMMEDIATE' });
// Force an immediate upload before the process terminates or reloads
await flush(crashlytics);
// Safe to terminate or refresh the current execution context
window.location.reload();
}
Mengonfigurasi frekuensi sampling
Jika Anda mengambil sampel proporsi sesi pengguna untuk mengontrol volume dan biaya telemetri, Anda dapat mengonfigurasi pengambilan sampel menggunakan salah satu opsi berikut:
- Opsi 1 (direkomendasikan): Mengonfigurasi frekuensi sampling di Firebase console
- Opsi 2: Menetapkan frekuensi sampling menggunakan Firebase Telemetry Admin API
Opsi 1 (direkomendasikan): Konfigurasikan frekuensi sampling di Firebase console
Di Firebase console, buka DevOps & Engagement > dasbor Crashlytics.
Pilih aplikasi web Anda dari pemilih drop-down di bagian atas halaman.
Klik Konfigurasi pengambilan sampel di pojok kanan atas dasbor.
Tetapkan persentase Frekuensi sampling (antara
0%dan100%) untuk mengontrol persentase peristiwa dan sesi yang dikumpulkan dari klien.
Opsi 2: Menetapkan frekuensi sampling menggunakan Firebase Telemetry Admin API
Anda dapat menggunakan Firebase Telemetry Admin API
(firebasetelemetryadmin.googleapis.com/v1alpha) untuk mengelola setelan pengumpulan telemetri
untuk aplikasi Firebase Anda.
Konfigurasikan variabel yang diperlukan berikut di terminal Anda:
PROJECT_ID="PROJECT_ID" LOCATION="LOCATION" # for example, global APP_ID="FIREBASE_APP_ID" # for example, 1:1234567890:web:abcdef123456 TOKEN=$(gcloud auth application-default print-access-token)Temukan CONFIG_NAME Anda, lalu konfigurasikan sebagai variabel di terminal Anda:
Setelan telemetri dikelola menggunakan resource
Config, jadi Anda perlu menemukan CONFIG_NAME tertentu untuk aplikasi web Anda.Cantumkan konfigurasi dalam project Anda dan filter menurut FIREBASE_APP_ID. Flag
curl -Gdan--data-urlencodememastikan string filter AIP-160 dienkode URL dengan benar:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"Dalam respons JSON, temukan kolom
nameuntuk aplikasi Anda (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>), lalu tetapkan sebagai variabelCONFIG_NAME:CONFIG_NAME="CONFIG_NAME"
Tetapkan frekuensi sampling:
Untuk menyesuaikan frekuensi sampling, gunakan metode
PATCHuntuk memperbarui kolomsampling_rate. Anda harus menentukanupdateMask=sampling_ratedalam parameter kueri. Frekuensi sampling adalah nilai ganda yang mewakili persentase sesi yang akan dikumpulkan (misalnya,0.25untuk 25%):# Example: Set sampling rate to 25% curl -X PATCH \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d "{ \"sampling_rate\": 0.25, \"app_id\": \"${APP_ID}\" }" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}?updateMask=sampling_rate"
Menonaktifkan atau mengaktifkan pengumpulan telemetri
Secara default, pengumpulan telemetri diaktifkan saat Anda menyiapkan Crashlytics
untuk aplikasi web Anda. Jika Anda perlu menonaktifkan atau mengaktifkan kembali pengumpulan telemetri
secara dinamis setelah menginstal Crashlytics SDK, Anda dapat mengelola
endpoint pengumpulan menggunakan Firebase Telemetry Admin API
(firebasetelemetryadmin.googleapis.com/v1alpha).
Sebelum dapat menonaktifkan atau mengaktifkan telemetri, Anda perlu menetapkan variabel berikut:
Konfigurasikan variabel yang diperlukan berikut di terminal Anda:
PROJECT_ID="PROJECT_ID" LOCATION="LOCATION" # for example, global APP_ID="FIREBASE_APP_ID" # for example, 1:1234567890:web:abcdef123456 TOKEN=$(gcloud auth application-default print-access-token)Temukan CONFIG_NAME Anda, lalu konfigurasikan sebagai variabel di terminal Anda:
Setelan telemetri dikelola menggunakan resource
Config, jadi Anda perlu menemukan CONFIG_NAME tertentu untuk aplikasi web Anda.Cantumkan konfigurasi dalam project Anda dan filter menurut FIREBASE_APP_ID. Flag
curl -Gdan--data-urlencodememastikan string filter AIP-160 dienkode URL dengan benar:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"Dalam respons JSON, temukan kolom
nameuntuk aplikasi Anda (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>), lalu tetapkan sebagai variabelCONFIG_NAME:CONFIG_NAME="CONFIG_NAME"
Menonaktifkan pengumpulan telemetri
Gunakan metode kustom :disable untuk menonaktifkan pengumpulan telemetri:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:disable"
Mengaktifkan kembali pengumpulan telemetri
Untuk mengaktifkan kembali pengumpulan telemetri, panggil metode :enable:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:enable"