插件
Crashlytics
@nativescript/firebase-crashlytics
- 简介
- 安装
- 使用 @nativescript/firebase-crashlytics
- 记录崩溃上下文
- 设置崩溃属性以获取更多上下文数据
- 测试 Crashlytics
- 手动报告错误
- [手动启用或禁用 Crashlytics 收集](#manually-enable-or-disable-crashlytics-collection
- API
- 许可证
允许您将 Firebase Crashlytics 添加到您的 NativeScript 应用的插件。
注意
使用此插件与 @nativescript/firebase-core 插件一起初始化 Firebase。
Crashlytics 可帮助您收集有关应用中发生的崩溃和错误的分析和详细信息。它通过三个方面来实现这一点
- 日志:记录应用中的事件,以便在应用崩溃时与崩溃报告一起发送,以提供上下文。
- 崩溃报告:每个崩溃都会自动转换为崩溃报告并发送。
- 堆栈跟踪:即使错误被捕获且应用恢复,JavaScript 堆栈跟踪仍可以发送。
安装
通过在项目的根目录中运行以下命令来安装插件。
npm install @nativescript/firebase-crashlytics
使用 @nativescript/firebase-crashlytics
记录崩溃上下文
在整个应用中使用 log
方法来累积可能发生的崩溃的额外上下文。
import { firebase } from '@nativescript/firebase-core'
import '@nativescript/firebase-crashlytics' // only needs to be imported 1x
const crashlytics = firebase().crashlytics()
crashlytics.log('User signed in.')
设置崩溃属性以获取更多上下文数据
为了提供更多上下文,Crashlytics 还提供各种方法来设置崩溃报告的属性。
- 要设置单个属性,请调用
setAttribute
方法,将属性名称作为第一个参数传递,并将属性值作为第二个参数传递。
import { firebase } from '@nativescript/firebase-core'
import '@nativescript/firebase-crashlytics' // only needs to be imported 1x
const crashlytics = firebase().crashlytics()
crashlytics().setAttribute('credits', String(user.credits))
- 要一次设置多个属性,请使用包含这些属性的对象调用
setAttributes
方法。
import { firebase } from '@nativescript/firebase-core'
import '@nativescript/firebase-crashlytics' // only needs to be imported 1x
const crashlytics = firebase().crashlytics()
crashlytics().setAttributes({
role: 'admin',
followers: '13',
email: user.email,
username: user.username,
})
您可以使用 set 方法来设置预定义的属性,但也可以设置您自己的自定义属性。
- 您还可以设置用户 ID。为此,请在
firebase().crashlytics()
上调用setUserId
方法。
import { firebase } from '@nativescript/firebase-core'
import '@nativescript/firebase-crashlytics' // only needs to be imported 1x
const crashlytics = firebase().crashlytics()
crashlytics.setUserId(user.uid)
测试 Crashlytics
要测试应用的 Crashlytics,请调用 crash
方法以强制发生崩溃,并在 Firebase 控制台中查看是否记录了崩溃。
firebase().crashlytics().crash()
手动报告错误
Crashlytics 还支持将 JavaScript 堆栈跟踪发送到 Firebase 控制台。这可用于任何发生错误但被您的代码捕获以优雅恢复的情况。
要发送堆栈跟踪,请将 JavaScript Error 传递给 recordError
方法。
即使您捕获了意外错误,为了使您的应用恢复并平稳运行,您仍然可以使用 recordError
方法通过 Crashlytics 报告这些错误。这还将为您提供相关的堆栈跟踪。
import { firebase } from '@nativescript/firebase-core'
firebase().crashlytics().log('Updating user count.')
try {
if (users) {
someMethodToCatch()
}
} catch (error) {
crashlytics().recordError(error)
console.log(error)
}
手动启用或禁用 Crashlytics 收集
由于 Crashlytics 将发送有关用户的某些信息,因此用户可能希望选择退出崩溃报告。要禁用 Crashlytics 收集,请在 firebase().crashlytics()
上调用 setCrashlyticsCollectionEnabled
方法,并将 false
传递给它。这可以通过简单的 setCrashlyticsCollectionEnabled
方法调用在整个应用中完成。
import { firebase } from '@nativescript/firebase-core'
firebase().crashlytics().setCrashlyticsCollectionEnabled(false)
API
Crashlytics
Crashlytics 类包含以下成员。
属性
属性 | 类型 | 描述 |
---|---|---|
ios | 只读 | |
android | 只读 | |
app | FirebaseApp | 只读 |
方法
方法 | 返回值 | 描述 |
---|---|---|
checkForUnsentReports() | Promise<boolean> | |
crash() | void | |
deleteUnsentReports() | void | |
didCrashOnPreviousExecution() | boolean | |
log(message: string) | void | |
recordError(error: any) | void | |
sendUnsentReports() | void | |
setAttribute(name: string, value: string | number | boolean) | void | |
setAttributes(attributes: { [key: string]: string | number | boolean }) | void | |
setCrashlyticsCollectionEnabled(enabled: boolean) | void | |
setUserId(userId: string) | void |
许可证
Apache 许可证 2.0 版