| Выберите платформу: | iOS+ Android Web Flutter Unity |
Если вы выполнили инструкции из руководства по началу работы, но на панели управления Crashlytics по-прежнему не отображаются сбои, воспользуйтесь этим руководством.
Как принудительно вызвать сбой, чтобы проверить реализацию
Добавьте в приложение код, который можно использовать для принудительного тестового сбоя.
Добавьте в приложение React, Next.js или Angular тестовую кнопку или триггер маршрута, который при нажатии вызывает ошибку выполнения:
// Trigger an unhandled exception on button click or route load function handleTestCrash() { throw new Error("Crashlytics Web SDK Test Unhandled Error!"); }Если вы настроили автоматическую регистрацию ошибок с помощью
<FirebaseCrashlytics>(React или Next.js),provideCrashlytics(Angular) или<CrashlyticsRoutes>(React Router), то при возникновении ошибки исключение будет автоматически зарегистрировано и запланировано к загрузке.Скомпилируйте и запустите приложение, а затем вызовите тестовую ошибку, чтобы приложение отправило в Firebase первый отчет о сбое.
В консоли Firebase перейдите в раздел DevOps & Engagement (DevOps и взаимодействие) > Crashlytics dashboard (Панель управления) и проверьте, появился ли отчет о тестовом сбое.
Выберите веб-приложение в раскрывающемся списке вверху страницы.
Обновите страницу. Тестовое исключение должно появиться в таблице Проблемы в течение нескольких минут.
Если вы обновили консоль и по-прежнему не видите тестовый сбой через 5–10 минут, ознакомьтесь со следующим разделом об устранении неполадок в настройке.
Устранение неполадок с настройками
Если вы запустили тестовый сбой, но в течение 5–10 минут не увидели отчеты на панели управления Crashlytics, попробуйте повторно запустить процесс настройки или проверить следующие конфигурации проекта в консоли:
Повторно запустите процесс настройки Crashlytics. Вы можете повторно запустить команду настройки CLI Firebase (
firebase crashlytics:setup) или завершить настройку в консоли Firebase, как описано в шаге 1 краткого руководства по началу работы. При повторной настройке автоматически включаются все отсутствующие API и восстанавливаются сегментfirebase-telemetryCloud Logging и приемник маршрутизации.Проверьте платежные данные и разрешения IAM. Убедитесь, что для проекта Firebase выбран тарифный план Blaze с оплатой по мере использования и что у вашего аккаунта есть разрешения владельца проекта.
Проверьте ограничения ключа API
firebasetelemetry.googleapis.com. В консоли Google Cloud на странице Credentials (Учетные данные) выберите ключ API, настроенный в объектеfirebaseConfig(например,Browser key (auto created by Firebase)). Если для ключа включены ограничения API, убедитесь, что Firebase Telemetry API (firebasetelemetry.googleapis.com) входит в список разрешенных API. Если эта цель отсутствует в ограниченном ключе API, запросы на загрузку по сети завершаются ошибками HTTP 403 (Запрещено) в консоли браузера.Проверьте включенные API Google Cloud. В консоли Google Cloud на странице Enabled APIs & services (Включенные API и сервисы) убедитесь, что для вашего проекта включены Firebase Telemetry API (
firebasetelemetry.googleapis.com), Firebase Telemetry Admin API (firebasetelemetryadmin.googleapis.com), Cloud Logging API (logging.googleapis.com) и Cloud Storage (storage.googleapis.com).Проверьте, включена ли функция Log Analytics для сегмента журналов. В консоли Google Cloud на странице Хранилище журналов убедитесь, что сегмент
firebase-telemetry(местоположениеglobal) существует и для него включена функция Log Analytics. На странице Маршрутизатор журналов проверьте, существует ли приемникfirebase-telemetry-routing.
Как вручную зарегистрировать и сбросить тестовое исключение
Если вы хотите сразу проверить сквозную передачу, не дожидаясь пакетной обработки в памяти или выгрузки страницы, используйте recordError вместе с 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.");
}
Дальнейшие действия
Получайте понятные отчеты о сбоях. Настройте автоматическую загрузку файлов исходных карт (
.js.map), чтобы в трассировках стека рабочей среды показывались исходные названия файлов и номера строк.Настройка отчетов о сбоях Узнайте, как создавать отчеты об обработанных исключениях, добавлять специальные ключи, принудительно очищать записи телеметрии и настраивать выборку.