☠️Firebase Crashlytics
Um exemplo de como implementar o Firebase Crashlytics no seu projeto de maneira eficiente.
Para instalar e iniciar o uso do plugin, basta adicionar ele ao pubspec, e fazer as seguintes configurações para Android:

Para mais informações, segue a documentação.
Vou mostrar agora um exemplo, de como configurar para pegar os erros de maneira eficiente nos nossos projetos.
Para erros fatais e erros de Widget:
Basta adicionar o seguinte código dentro da main do projeto:
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterFatalError;
PlatformDispatcher.instance.onError = ((exception, stackTrace) {
FirebaseCrashlytics.instance.recordError(exception, stackTrace);
return true;
});
Para erros em Requests externas:
Dentro do nosso arquivo de dio_config, é possível fazer um override da função de onError do Dio, para capturar todo e qualquer erro que acontecer. Com isso, podemos utilizar isso para garantir que todos os erros vão ser logados no crashlytics.
@override
Future onError(DioError err, ErrorInterceptorHandler handler) async {
FirebaseCrashlytics.instance.setUserIdentifier(
FirebaseAuth.instance.currentUser?.uid ?? "SEM_ID",
);
FirebaseCrashlytics.instance.setCustomKey(
'URL',
'${err.requestOptions.baseUrl}${err.requestOptions.path}',
);
FirebaseCrashlytics.instance.setCustomKey(
'USER_ID',
'${FirebaseAuth.instance.currentUser?.uid}',
);
FirebaseCrashlytics.instance.setCustomKey(
'RESPONSE',
err.response.toString(),
);
await FirebaseCrashlytics.instance.recordError(
err.error.toString(),
err.stackTrace,
reason: err.message,
);
handler.next(err);
}
Como esse exemplo de implementação, é logado todo e qualquer erro nas requests, passando qual foi o usuário do Firebase que fez a request, qual a URL que deu erro e a response que teve.
Last updated