Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Primeiros passos com o Firebase Crashlytics

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Este início rápido descreve como configurar o Firebase Crashlytics em seu aplicativo com o plug-in Crashlytics Flutter para que você possa obter relatórios de falhas abrangentes no console do Firebase.

A configuração do Crashlytics envolve o uso de uma ferramenta de linha de comando e seu IDE. Para concluir a configuração, você precisará forçar uma exceção de teste a ser lançada para enviar seu primeiro relatório de falha ao Firebase.

Antes de você começar

  1. Se ainda não o fez, configure e inicialize o Firebase em seu projeto Flutter.

  2. Recomendado : para obter recursos como usuários sem falhas, logs de navegação e alertas de velocidade, você precisa ativar o Google Analytics em seu projeto do Firebase.

    Todas as plataformas Android e Apple suportadas pelo Crashlytics (exceto watchOS) podem aproveitar esses recursos do Google Analytics.

    Verifique se o Google Analytics está ativado em seu projeto do Firebase: vá para > Configurações do projeto > guia Integrações e siga as instruções na tela para o Google Analytics.

Etapa 1 : adicionar Crashlytics ao seu projeto Flutter

  1. Na raiz do seu projeto Flutter, execute o seguinte comando para instalar o plug-in Crashlytics Flutter:

    flutter pub add firebase_crashlytics
    
  2. No diretório raiz do seu projeto Flutter, execute o seguinte comando:

    flutterfire configure
    

    A execução desse comando garante que a configuração do Firebase do seu aplicativo Flutter esteja atualizada e, para Android, adiciona o plug-in Gradle do Crashlytics necessário ao seu aplicativo.

  3. Depois de concluído, reconstrua seu projeto Flutter:

    flutter run
    
  4. (Opcional) Se seu projeto Flutter usa o --split-debug-info (e, opcionalmente, o sinalizador --obfuscate ), você precisa usar a Firebase CLI (v.11.9.0+) para fazer upload de símbolos do Android.

    No diretório raiz do seu projeto Flutter, execute o seguinte comando:

    firebase crashlytics:symbols:upload --app=APP_ID PATH/TO/symbols

    O PATH/TO /symbols é o mesmo diretório que você passa para o --split-debug-info ao construir o aplicativo.

Etapa 2 : configurar manipuladores de falhas

Você pode capturar automaticamente todos os erros gerados no framework Flutter substituindo FlutterError.onError por FirebaseCrashlytics.instance.recordFlutterFatalError :

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  await Firebase.initializeApp();

  // Pass all uncaught "fatal" errors from the framework to Crashlytics
  FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;

  runApp(MyApp());
}

Para capturar erros assíncronos que não são tratados pela estrutura Flutter, use PlatformDispatcher.instance.onError :

Future<void> main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();
    FlutterError.onError = (errorDetails) {
      FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
    };
    // Pass all uncaught asynchronous errors that aren't handled by the Flutter framework to Crashlytics
    PlatformDispatcher.instance.onError = (error, stack) {
      FirebaseCrashlytics.instance.recordError(error, stack, fatal: true);
      return true;
    };
    runApp(MyApp());

}

Para obter exemplos de como lidar com outros tipos de erros, consulte Personalizar relatórios de falhas .

Etapa 3 : forçar uma falha de teste para concluir a configuração

Para concluir a configuração do Crashlytics e ver os dados iniciais no painel do Crashlytics do console do Firebase, você precisa forçar o lançamento de uma exceção de teste.

  1. Adicione código ao seu aplicativo que você pode usar para forçar uma exceção de teste a ser lançada.

    Se você adicionou um manipulador de erros que chama FirebaseCrashlytics.instance.recordError(error, stack, fatal: true) à Zone de nível superior , você pode usar o código a seguir para adicionar um botão ao seu aplicativo que, quando pressionado, lança uma exceção de teste:

    TextButton(
        onPressed: () => throw Exception(),
        child: const Text("Throw Test Exception"),
    ),
    
  2. Crie e execute seu aplicativo.

  3. Force a exceção de teste a ser lançada para enviar o primeiro relatório do seu aplicativo:

    1. Abra seu aplicativo em seu dispositivo de teste ou emulador.

    2. Em seu aplicativo, pressione o botão de exceção de teste que você adicionou usando o código acima.

  4. Acesse o painel do Crashlytics do console do Firebase para ver a falha do teste.

    Se você atualizou o console e ainda não está vendo a falha de teste após cinco minutos, habilite o log de depuração para ver se seu aplicativo está enviando relatórios de falha.


E é isso! O Crashlytics agora está monitorando seu aplicativo em busca de falhas e, no Android, erros não fatais e ANRs. Visite o painel do Crashlytics para visualizar e investigar todos os seus relatórios e estatísticas.

Próximos passos