| Plattform auswählen: | iOS+ Android Web Flutter Unity |
In der Firebase-Konsole (DevOps & Engagement > Crashlytics-Dashboard) können Sie auf ein Problem klicken, um einen detaillierten Ereignisbericht zu erhalten. Sie können diese Berichte anpassen und die Telemetrieerfassung verwalten, um besser zu verstehen, was in Ihrer Webanwendung passiert:
- Behandelte Ausnahmen programmatisch melden
- Benutzerdefinierte Schlüssel hinzufügen
- Erzwingen des Löschens von Telemetriedatensätzen für kurzlebige Routinen
- Abtastrate konfigurieren
- Telemetrieerfassung deaktivieren oder aktivieren
Behandelte Ausnahmen programmatisch melden
Sie können behandelte Ausnahmen manuell mit recordError aufzeichnen. Routingfehler und nicht abgefangene Ausnahmen werden automatisch von den Fehlergrenzen Ihres Frameworks erfasst.
So kannst du die Fehlerhäufigkeit und Diagnoseattribute für deine Nutzer im Blick behalten:
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);
}
}
Benutzerdefinierte Schlüssel hinzufügen
Mit benutzerdefinierten Metadatenschlüsseln können Sie den spezifischen App-Status oder Nutzerworkflow ermitteln, der zu einem Absturz geführt hat.
Sie können Nutzeraktivitäten, Sitzungsstatus und Diagnosedetails direkt als benutzerdefinierte Schlüssel/Wert-Attribute protokollieren. Verwenden Sie dazu den optionalen Metadatenparameter, wenn Sie recordError aufrufen:
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'
});
Diese benutzerdefinierten Attribute werden im Ausnahmebericht beibehalten und auf dem Tab Schlüssel in der Problemansicht des Crashlytics-Dashboards angezeigt.
Löschen von Telemetriedatensätzen erzwingen
Standardmäßig werden Logs von der Web-Telemetrie-Engine in Speichersegmenten zusammengefasst, um die Akkulaufzeit, die CPU-Leistung und die Netzwerkbandbreite zu schonen. In kurzlebigen Ausführungsumgebungen müssen Logs jedoch sofort hochgeladen werden, bevor der Ausführungskontext gelöscht wird.
Mit dem asynchronen Befehl flush können Sie alle in der Warteschlange befindlichen Fehler sofort an das Backend senden:
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();
}
Abtastrate konfigurieren
Wenn Sie einen Teil Ihrer Nutzersitzungen stichprobenartig erfassen, um das Telemetrie-Volumen und die Kosten zu kontrollieren, können Sie die Stichprobenerhebung mit einer der folgenden Optionen konfigurieren:
- Option 1 (empfohlen): Abtastrate in der Firebase-Konsole konfigurieren
- Option 2: Abtastrate mit der Firebase Telemetry Admin API festlegen
Option 1 (empfohlen): Abtastrate in der Firebase-Konsole konfigurieren
Rufen Sie in der Firebase Console das Dashboard DevOps & Engagement > Crashlytics auf.
Wählen Sie oben auf der Seite im Drop-down-Menü Ihre Web-App aus.
Klicken Sie rechts oben im Dashboard auf Stichprobenerhebung konfigurieren.
Legen Sie den Prozentsatz für die Abtastrate (zwischen
0%und100%) fest, um den Prozentsatz der Ereignisse und Sitzungen zu steuern, die von Clients erfasst werden.
Option 2: Abtastrate mit der Firebase Telemetry Admin API festlegen
Mit der Firebase Telemetry Admin API (firebasetelemetryadmin.googleapis.com/v1alpha) können Sie die Einstellungen für die Telemetrieerfassung für Ihre Firebase-Apps verwalten.
Konfigurieren Sie die folgenden erforderlichen Variablen in Ihrem Terminal:
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)Suchen Sie Ihre CONFIG_NAME und konfigurieren Sie sie dann als Variable in Ihrem Terminal:
Telemetrieeinstellungen werden mit einer
Config-Ressource verwaltet. Sie müssen also die spezifische CONFIG_NAME für Ihre Webanwendung finden.Listen Sie die Konfigurationen in Ihrem Projekt auf und filtern Sie nach Ihrem FIREBASE_APP_ID. Mit den Flags
curl -Gund--data-urlencodewird der AIP-160-Filterstring korrekt URL-codiert:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"Suchen Sie in der JSON-Antwort das Feld
namefür Ihre Anwendung (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>) und legen Sie es als VariableCONFIG_NAMEfest:CONFIG_NAME="CONFIG_NAME"
Legen Sie die Abtastrate fest:
Wenn Sie die Abtastrate anpassen möchten, verwenden Sie die Methode
PATCH, um das Feldsampling_ratezu aktualisieren. Sie müssenupdateMask=sampling_ratein den Suchparametern angeben. Die Abtastrate ist ein Double-Wert, der den Prozentsatz der zu erfassenden Sitzungen darstellt (z. B.0.25für 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"
Erfassung von Telemetriedaten deaktivieren oder aktivieren
Standardmäßig ist die Telemetrieerfassung aktiviert, wenn Sie Crashlytics für Ihre Web-App einrichten. Wenn Sie die Telemetrieerfassung nach der Installation des Crashlytics SDK dynamisch deaktivieren oder wieder aktivieren müssen, können Sie die Endpunkte der Erfassung mit der Firebase Telemetry Admin API (firebasetelemetryadmin.googleapis.com/v1alpha) verwalten.
Bevor Sie die Telemetrie deaktivieren oder aktivieren können, müssen Sie die folgenden Variablen festlegen:
Konfigurieren Sie die folgenden erforderlichen Variablen in Ihrem Terminal:
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)Suchen Sie Ihre CONFIG_NAME und konfigurieren Sie sie dann als Variable in Ihrem Terminal:
Telemetrieeinstellungen werden mit einer
Config-Ressource verwaltet. Sie müssen also die spezifische CONFIG_NAME für Ihre Webanwendung finden.Listen Sie die Konfigurationen in Ihrem Projekt auf und filtern Sie nach Ihrem FIREBASE_APP_ID. Mit den Flags
curl -Gund--data-urlencodewird der AIP-160-Filterstring korrekt URL-codiert:curl -G \ -H "Authorization: Bearer $TOKEN" \ --data-urlencode "filter=app_id=\"${APP_ID}\"" \ "https://firebasetelemetryadmin.googleapis.com/v1alpha/projects/${PROJECT_ID}/locations/${LOCATION}/configs"Suchen Sie in der JSON-Antwort das Feld
namefür Ihre Anwendung (projects/PROJECT_ID/locations/LOCATION/configs/<CONFIG_ID>) und legen Sie es als VariableCONFIG_NAMEfest:CONFIG_NAME="CONFIG_NAME"
Telemetrieerfassung deaktivieren
Verwenden Sie die benutzerdefinierte Methode :disable, um die Telemetrieerfassung zu deaktivieren:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:disable"
Telemetrieerfassung wieder aktivieren
Rufen Sie die Methode :enable auf, um die Telemetrieerfassung wieder zu aktivieren:
curl -X POST \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{}' \
"https://firebasetelemetryadmin.googleapis.com/v1alpha/${CONFIG_NAME}:enable"