Alterações da API Firebase Crashlytics para Unity

Com o lançamento do Firebase Crashlytics para Unity, a equipe do Firebase está trazendo a funcionalidade que os desenvolvedores usam no Fabric para o Firebase. Assim, é possível fazer algumas pequenas alterações para garantir que as APIs do Firebase Crashlytics sejam mais intuitivas e fáceis para o desenvolvedor.

Os desenvolvedores que já usam o SDK do Fabric Crashlytics podem precisar fazer algumas pequenas alterações no código ao atualizar para o Firebase Crashlytics. Neste guia, fornecemos detalhes sobre as alterações específicas na API, o motivo da alteração e sugestões úteis quando soluções alternativas forem necessárias.

O Fabric.Crashlytics agora é o Firebase.Crashlytics

Alteramos nosso namespace de Fabric para Firebase.

Fabric

using Fabric.Crashlytics;

Firebase

using Firebase.Crashlytics;

O RecordCustomException agora é LogException

Registre exceções não fatais personalizadas que foram capturadas e processadas.

Fabric

Crashlytics.RecordCustomException(string name, string reason, StackTrace stackTrace);
Crashlytics.RecordCustomException(string name, string reason, string stackTraceString);

Firebase

Crashlytics.LogException(Exception ex);

Motivo para a alteração

Essa função é usada com mais frequência para registrar uma instância de um Exception. Em vez de exigir que você extraia o "nome", "motivo" e "stackTrace" manualmente (o que resulta em código supérfluo), agora é possível fornecer a instância do Exception e o Firebase Crashlytics extrairá as informações necessárias.

Alternativa

Se você estivesse usando esses parâmetros de outra forma além de extrair as informações de uma exceção diretamente, ainda seria possível alcançar o comportamento anterior ao criar sua própria subclasse de Exception com os metadados personalizados na descrição.

O método SetKeyValue agora é SetCustomKey

Defina qualquer par de chave-valor para enviar junto com o relatório de erros. Redefinir a mesma chave atualizará o valor.

Fabric

Crashlytics.SetKeyValue(string key, string value);

Firebase

Crashlytics.SetCustomKey(string key, string value);

Motivo para a alteração

Esse método foi renomeado para tornar o comportamento mais claro e melhorar a consistência com outras APIs do Firebase.

O método SetUserIdentifier agora é SetUserId

Defina um identificador de usuário para ajudar a entender qual foi afetado por uma falha.

Fabric

Crashlytics.SetUserIdentifier(string identifier);

Firebase

Crashlytics.SetUserId(string identifier);

Motivo para a alteração

Esse método foi renomeado para melhorar a consistência com outras APIs do Firebase. Como vantagem, ele é mais curto, e quem não ama ter que digitar alguns caracteres a menos?

Os métodos SetUserEmail e SetUserName foram removidos

Anteriormente, era possível definir um nome ou e-mail associado a uma falha usando métodos explícitos. Essas informações não serão mais explicitamente definidas.

Fabric

Crashlytics.SetUserEmail(string email);
Crashlytics.SetUserName(string name);

Motivo para a alteração

O Google se esforça para proteger os dados do cliente, e parte desse esforço é criar APIs que fazem o mesmo para ferramentas de desenvolvimento. Essas APIs específicas do usuário foram removidas para incentivar o uso de métodos gerados e sem identificação pessoal para saber qual usuário foi afetado por uma falha.

Alternativa

Para especificar qual usuário teve uma falha, o método preferencial é usar SetUserId. No entanto, se essa não for uma solução durável, a mesma funcionalidade poderá ser realizada usando SetCustomKey.

Os métodos Crash e ThrowNonFatal foram removidos

Anteriormente, o Crashlytics fornecia dois métodos de utilitário para lançar exceções para fins de teste. Eles não serão incluídos no Firebase Crashlytics.

Fabric

Crashlytics.Crash();
Crashlytics.ThrowNonFatal();

Motivo para a alteração

O Crashlytics para Unity é executado em muitos ambientes diferentes, e é possível que ocorram diversos tipos de falhas. Esses métodos não especificavam claramente se as falhas resultantes ocorreram no C# ou no SDK nativo específico da plataforma subjacente.

Alternativa