| Selecionar plataforma: | iOS+ Android Web Flutter Unity |
Use este guia se você seguiu o guia de primeiros passos e ainda não encontrou falhas no painel Crashlytics.
Forçar a ocorrência de um erro para testar sua implementação
Adicione um código ao app que possa ser usado para forçar uma falha no teste.
Adicione um botão de teste ou um acionador de rota ao seu app React, Next.js ou Angular que gere um erro de tempo de execução quando clicado:
// Trigger an unhandled exception on button click or route load function handleTestCrash() { throw new Error("Crashlytics Web SDK Test Unhandled Error!"); }Se você configurou a captura automática de erros com
<FirebaseCrashlytics>(React ou Next.js),provideCrashlytics(Angular) ou<CrashlyticsRoutes>(React Router), o lançamento desse erro captura automaticamente a exceção e a programa para upload.Crie e execute o app e acione o erro de teste para que ele envie o primeiro relatório de falhas ao Firebase.
No console do Firebase, acesse o painel DevOps e engajamento > Crashlytics para verificar o relatório de falhas do teste:
Selecione seu app da Web no seletor suspenso na parte de cima da página.
Atualize a página. A exceção de teste vai aparecer na tabela Problemas em alguns minutos.
Se você atualizou o console, mas a falha de teste ainda não foi exibida após cinco a dez minutos, consulte a próxima seção sobre como resolver problemas de configuração.
Resolver problemas de configuração
Se você acionou uma falha de teste e ainda não vê relatórios no painel do Crashlytics após cinco a dez minutos, tente executar novamente o fluxo de configuração ou verifique as seguintes configurações do projeto no console:
Execute novamente o fluxo de configuração do Crashlytics: é seguro executar novamente o comando de configuração da CLI do Firebase (
firebase crashlytics:setup) ou concluir a configuração no console do Firebase, conforme descrito na Etapa 1 do guia de iniciação. A nova execução da configuração ativa automaticamente as APIs ausentes e repara o bucketfirebase-telemetrydo Cloud Logging e o coletor de roteamento.Verifique o faturamento e as permissões do IAM: confira se o projeto do Firebase está no plano de preços Blaze de pagamento por uso e se a conta tem permissões de proprietário no projeto ao executar a etapa de configuração.
Verifique as restrições da chave de API do
firebasetelemetry.googleapis.com: na página Credenciais do console do Google Cloud, selecione a chave de API configurada no objetofirebaseConfig(por exemplo,Browser key (auto created by Firebase)). Se a chave tiver restrições de API ativadas, verifique se a API Firebase Telemetry (firebasetelemetry.googleapis.com) está incluída na lista de APIs permitidas. Se esse destino estiver ausente de uma chave de API restrita, as solicitações de upload de rede vão falhar com erros HTTP 403 (proibido) no console do navegador.Verifique as APIs do Google Cloud ativadas: na página APIs e serviços ativados do console do Google Cloud, verifique se a API Firebase Telemetry (
firebasetelemetry.googleapis.com), a API Admin do Firebase Telemetry (firebasetelemetryadmin.googleapis.com), a API Cloud Logging (logging.googleapis.com) e o Cloud Storage (storage.googleapis.com) estão ativados para seu projeto.Verifique a Análise de Dados de Registros no bucket de geração de registros: na página Armazenamento de registros do console do Google Cloud, verifique se o bucket
firebase-telemetry(localglobal) existe e tem a Análise de Dados de Registros ativada. Além disso, confira a página Roteador de registros para confirmar se o coletorfirebase-telemetry-routingexiste.
Capturar e limpar manualmente uma exceção de teste
Se você quiser verificar imediatamente a transmissão de ponta a ponta sem esperar pelo
processamento em lote de memória ou pelo descarregamento de páginas, use recordError com 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.");
}
Próximas etapas
Receba relatórios de erros legíveis: configure o upload automático de mapas de origem (
.js.map) para que os stack traces de produção mostrem os nomes de arquivo e números de linha originais.Personalizar relatórios de erros: saiba como informar exceções processadas, adicionar chaves personalizadas, forçar a limpeza de registros de telemetria e configurar a amostragem.