如何使用Firebase崩溃报告在iOS上报告非致命异常?在Android中,我们可以这样做:
FirebaseCrash.report(new Exception("My first Firebase non-fatal error on Android"));
答案 0 :(得分:5)
记录Firebase Analytics事件。虽然这不能为您提供从Firebase崩溃报告中获得的所有堆栈的好处,但您至少可以跟踪特定异常随时间发生的频率。
使用FIRCrashMessage()
方法记录应用中发生的任何错误。您只会在崩溃报告中看到最终报告给Firebase崩溃报告的这些日志方法,但鉴于错误经常导致崩溃,这不是一个坏主意。
尝试Crashlytics。他们使用reportError()
方法专门用于报告非致命错误。在你的应用程序中继续使用Firebase的其他功能时,使用Crashlytics进行崩溃报告是很好的 - 它们现在都是同一家公司。 :)
答案 1 :(得分:3)
根据the documentation,您目前只能在iOS上报告致命错误。
答案 2 :(得分:1)
因此,已接受的答案不再正确。可以使用以下Firebase Crashlytics方法记录非致命异常:
Crashlytics.sharedInstance().recordError(error)
这允许您记录由NSError对象描述的非致命事件。这些事件将被分组和显示,类似于崩溃。请记住,此方法可能会很昂贵。此外,在应用程序的生命周期内可以记录的NSError总数受固定大小的循环缓冲区限制。如果缓冲区溢出,则将删除最早的数据。错误在以后启动应用程序时传递给Crashlytics。
用法示例:
let userInfo: [String: String] = [
"deviceId": "someDeviceId",
"localizedDescription": yourExeption.localizedDescription,
"anotherKey": "anotherValue"
]
let domain = "METHOD: some/domain/that/just/had-an-exception"
let code = 404
let error = NSError(domain: domain, code: code, userInfo: userInfo)
Crashlytics.sharedInstance().recordError(error)
其中domain
是在Firebase中使用的漂亮标识符(例如方法+请求路径),code
是异常的状态代码(此处为404),另外userInfo
数据将转换为键值对,并显示在单个问题的“键/日志”部分中。
注意:记录的错误按NSError domain
和code
分组(与致命错误不同,致命错误在Firebase中按堆栈跟踪进行分组)。
Firebase Console > Crashlytics
中的示例输出:
控制台中的“问题详细信息”页面(显示userInfo
个键值对):
答案 3 :(得分:0)
现在使用最新版本的Firebase Crashlytics:
Crashlytics.crashlytics().record(error: error)