| Seleziona la piattaforma: | iOS+ Android Web Flutter Unity |
Nella console Firebase (DevOps e coinvolgimento > dashboard Crashlytics), puoi fare clic su un problema e visualizzare un report dettagliato sugli eventi. Puoi personalizzare questi report e gestire la raccolta dei dati di telemetria per comprendere meglio cosa sta succedendo nella tua app web:
- Segnala le eccezioni gestite in modo programmatico
- Aggiungi chiavi personalizzate
- Forza lo svuotamento dei record di telemetria per le routine di breve durata
- Configura la frequenza di campionamento
- Disattiva o attiva la raccolta dei dati di telemetria
Segnala le eccezioni gestite in modo programmatico
Puoi registrare manualmente le eccezioni gestite utilizzando recordError. Gli errori di routing e le eccezioni non rilevate vengono acquisiti automaticamente dai limiti di errore del framework.
Ecco come monitorare la prevalenza degli errori e gli attributi di diagnostica per i tuoi utenti:
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);
}
}
Aggiungi chiavi personalizzate
Le chiavi dei metadati personalizzati ti aiutano a comprendere lo stato specifico dell'app o il flusso di lavoro dell'utente che ha causato un arresto anomalo.
Puoi registrare le attività utente, gli stati della sessione e i dettagli diagnostici direttamente come attributi personalizzati coppia chiave-valore utilizzando il parametro facoltativo dei metadati quando chiami 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'
});
Questi attributi personalizzati vengono conservati nel report sulle eccezioni e vengono visualizzati nella scheda Chiavi nella visualizzazione dei problemi della dashboard di Crashlytics.
Forza lo svuotamento dei record di telemetria
Per impostazione predefinita, il motore di telemetria web raggruppa i log in segmenti di memoria per preservare la durata della batteria, le prestazioni della CPU e la larghezza di banda della rete. Tuttavia, per gli ambienti di esecuzione di breve durata, i log devono essere caricati immediatamente prima che il contesto di esecuzione venga eliminato.
Puoi utilizzare il comando asincrono flush per inviare immediatamente tutti gli errori in coda al 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();
}
Configura la frequenza di campionamento
Se campioni una parte delle sessioni utente per controllare il volume e il costo della telemetria, puoi configurare il campionamento utilizzando una delle seguenti opzioni:
- Opzione 1 (consigliata): configura la frequenza di campionamento nella console Firebase
- Opzione 2: Imposta la frequenza di campionamento utilizzando l'API Firebase Telemetry Admin
Opzione 1 (consigliata): configura la frequenza di campionamento nella console Firebase
Nella console Firebase, vai alla dashboard DevOps e coinvolgimento > Crashlytics.
Seleziona la tua app web dal selettore a discesa nella parte superiore della pagina.
Fai clic su Configura campionamento nell'angolo in alto a destra della dashboard.
Imposta la percentuale della frequenza di campionamento (tra
0%e100%) per controllare la percentuale di eventi e sessioni raccolti dai client.
Opzione 2: imposta la frequenza di campionamento utilizzando l'API Admin di Firebase Telemetry
Puoi utilizzare l'API Firebase Telemetry Admin (firebasetelemetryadmin.googleapis.com/v1alpha) per gestire le impostazioni di raccolta della telemetria per le tue app Firebase.
Configura le seguenti variabili obbligatorie nel terminale:
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)Trova il tuo CONFIG_NAME e configuralo come variabile nel terminale:
Le impostazioni di telemetria vengono gestite utilizzando una risorsa
Config, quindi devi trovare la CONFIG_NAME specifica per la tua app web.Elenca le configurazioni nel tuo progetto e filtra in base al tuo FIREBASE_APP_ID. I flag
curl -Ge--data-urlencodeassicurano che la stringa di filtro AIP-160 sia codificata correttamente nell'URL:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"Nella risposta JSON, individua il campo
nameper la tua app (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>) e impostalo come variabileCONFIG_NAME:CONFIG_NAME="CONFIG_NAME"
Imposta la frequenza di campionamento:
Per regolare la frequenza di campionamento, utilizza il metodo
PATCHper aggiornare il camposampling_rate. Devi specificareupdateMask=sampling_ratenei parametri di query. La frequenza di campionamento è un valore decimale che rappresenta la percentuale di sessioni da raccogliere (ad esempio,0.25per il 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"
Disattiva o attiva la raccolta dei dati di telemetria
Per impostazione predefinita, la raccolta dei dati di telemetria è abilitata quando configuri Crashlytics per la tua app web. Se devi disabilitare o riabilitare la raccolta dei dati di telemetria in modo dinamico dopo aver installato l'SDK Crashlytics, puoi gestire gli endpoint di raccolta utilizzando l'API Firebase Telemetry Admin (firebasetelemetryadmin.googleapis.com/v1alpha).
Prima di poter disattivare o attivare la telemetria, devi impostare le seguenti variabili:
Configura le seguenti variabili obbligatorie nel terminale:
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)Trova il tuo CONFIG_NAME e configuralo come variabile nel terminale:
Le impostazioni di telemetria vengono gestite utilizzando una risorsa
Config, quindi devi trovare la CONFIG_NAME specifica per la tua app web.Elenca le configurazioni nel tuo progetto e filtra in base al tuo FIREBASE_APP_ID. I flag
curl -Ge--data-urlencodeassicurano che la stringa di filtro AIP-160 sia codificata correttamente nell'URL:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"Nella risposta JSON, individua il campo
nameper la tua app (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>) e impostalo come variabileCONFIG_NAME:CONFIG_NAME="CONFIG_NAME"
Disattiva la raccolta dei dati di telemetria
Utilizza il metodo personalizzato :disable per disattivare la raccolta dei dati di telemetria:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:disable"
Riattiva la raccolta dei dati di telemetria
Per riattivare la raccolta dei dati di telemetria, chiama il metodo :enable:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:enable"