Obrigado por clicarem neste Firecast.
Meu nome é Doug Stevenson
e vou mostrar a você como monitorar falhas em seu app Android
com o Firebase Crash Reporting.
Imagine que você gastou muito tempo desenvolvendo e testando seu app Android
e acabou de publicá-lo na Play Store para todos usarem.
Agora, obviamente, você quer que seus usuários
tenham a melhor experiência possível com seu app.
Então, se há um erro que causa problemas no app
você precisa saber o quanto antes, para poder consertá-lo.
Para ajudar com isso, você pode integrar o Firebase Crash Reporting SDK
com uma única linha de configuração antes de você publicar.
Se você ainda não integrou recursos Firebase ao seu app
assista a este vídeo primeiro, para se familiarizar.
Então você pode voltar aqui e usar o Firebase Cash Reporting.
Já tenho um app usando Firebase, então vou integrar o Crash Reporting nele.
Vou abrir meu appsbuild.gradle
e encontrar o bloco de dependências do projeto.
Então vou adicionar a dependência para o Firebase Crash Reporting.
A última versão no momento desta gravação é 10.0.1.
Você deve encontrar e usar a última versão.
Então vou sincronizar meu projeto.
E é isso!
Você só precisa adicionar a dependência se quiser registrar falhas no seu app.
Não é necessário escrever mais código, ele simplesmente funciona.
Sempre que houver uma exceção causando falhas em seu app
você receberá essa exceção com a sua pilha de rastreamento
no console do Firebase.
Além disso, você pode fazer outras coisas com algumas linhas de código
usando a API do Firebase Crash Reporting.
Por exemplo, você pode registrar mensagens que aparecem no relatório de erros.
Assim, você pode entender o que ocorreu logo antes da falha.
Você também pode reportar exceções que ocorrerem
caso não saiba lidar com elas.
Elas irão aparecer como relatórios não fatais no console.
Geralmente, você não precisa reportar exceções
mas isso pode ser útil para diagnosticar problemas raros ou inesperados.
Vou adicionar algumas destas chamadas agora mesmo.
A primeira linha de código é para registrar uma mensagem
que sei que irá aparecer logo antes de reportar a exceção.
Então vou criar e reportar uma falsa exceção.
Funciona como se a exceção estivesse em uma bandeja de captura.
Agora vou construir e rodar o app e examinar o arquivo de registros.
Se eu quiser ver os relatórios, carrego o console Firebase do meu app
e seleciono Relatório de Erros à esquerda.
Veja que o console do meu app
agora mostra minha exceção como um erro não fatal
que causou uma falha no app.
Se eu clicar nela, posso ver detalhes sobre o dispositivo.
Neste caso, vemos que é do meu emulador.
A pilha completa de rastreamento aparece, além da mensagem que escrevi.
Depois que corrigir o problema, posso fechá-lo com o botão Fechar.
Assim, ele não aparecerá de novo.
Quando um novo erro é descoberto pelo Firebase Crash Reporting
também receberei um e-mail de notificação.
Esse e-mail me dá detalhes básicos sobre o erro
e um botão para visualizá-lo no console.
Deve levar menos de um minuto para um relatório aparecer no console
depois que for enviado.
Quando tentar você mesmo, tenha uma boa conexão de rede
e carregue o aplicativo novamente para que relatórios não enviados
cheguem até o console.
Um novo app, como o meu, não tem muitos erros interessantes
mas no app demo do Firebase, você pode ver mais dados interessantes.
Você pode ter acesso de leitura ao projeto usando o link na descrição abaixo.
O app demo é um jogo chamado Flood-It!, do Lab Pixies, disponível na Play Store.
Vamos dar uma olhada nos relatórios de erro desse app.
Este projeto tem um app Android e um app iOS associados.
Vou escolher para visualizar os erros da versão Android.
Aqui, podemos ver o histórico recente de erros
com detalhes na tabela abaixo
organizados pelo número de vezes que cada um ocorreu.
Se clicarmos em um, aparecerá a pilha de rastreamento
e se clicar Visualizar Detalhes, aparecerão algumas estatísticas
sobre esse erro específico.
Você pode visualizar todas as ocorrências do erro clicando nas flechas.
Esta coleção inteira de erros é chamada de "problema".
E um problema é formado baseado em erros similares.
Todas representam o mesmo erro
mas a pilha de rastreamento e os detalhes de dispositivo
podem ser um pouco diferentes.
Para um erro individual, você pode ver informações detalhadas
sobre o dispositivo no momento da falha.
Neste erro específico, a parte mais útil da pilha de rastreamento está oculta
então vou expandi-la.
Aqui vemos que o problema começa em ExtraStepsActivity
em seu método onResume.
Se eu rolar mais para baixo
posso ver um registro do que aconteceu antes do erro.
Aqui, há vários itens de registro que foram criados automaticamente
dos eventos Firebase Analytics no momento em que ocorreram.
Esses eventos são registrados automaticamente.
Não é necessário código adicional para que isso aconteça.
Esse foi um tour básico do Firebase Crash Reporting
Mas você precisa saber de algumas coisas antes de publicar seu app na Play Store.
Primeiro, separar seu ambiente de desenvolvimento
do seu ambiente de produção.
Para isso, crie um novo projeto Firebase para cada tipo de desenvolvimento.
Assim, quaisquer erros que ocorram ao desenvolver seu app
permanecerão separados dos que ocorrerem com seus usuários na produção.
Leia este post no blog para maiores informações.
Segundo, se você usa ProGuard para ofuscar e encolher seu código
envie os arquivos de mapeamento gerados para a versão publicada na Store.
Você também pode enviá-lo ao console
ou usar o plug-in gradle para rodar uma tarefa que executa o upload.
Leia os documentos sobre isso
pois não é possível ler a pilha de rastreamentos
sem enviar o arquivo de mapeamento correto.
Se você tem dúvidas sobre o Firebase Crash Reporting
contacte-nos no Twitter com a hashtag #askFirebase
ou em quaisquer canais de suporte do Firebase.
Meu nome é Doug Stevenson.
Obrigado por assistir e certifique-se de esmagar todos aqueles erros.
Obrigado por assistir ao nosso vídeo.
Confira mais vídeos aqui
e não se esqueça de se inscrever no canal do Firebase no YouTube.