@nativescript-asharghi/firebase-crashlytics
NativeScript Firebase - Crashlytics
npm i --save @nativescript-asharghi/firebase-crashlytics

@nativescript-asharghi/firebase-crashlytics

一个插件,允许您将 Firebase Crashlytics 添加到您的 NativeScript 应用程序。

注意:使用此插件与 @nativescript-asharghi/firebase-core 插件一起初始化 Firebase。

崩溃分析工具可以帮助您收集有关应用程序中发生的崩溃和错误的分析和数据。它通过以下三个方面实现:

  • 日志:将事件记录到您的应用程序中,以便在应用程序崩溃时随崩溃报告一起发送。
  • 崩溃报告:将每个崩溃自动转换为崩溃报告并发送。
  • 堆栈跟踪:即使错误被捕获并且应用程序恢复,JavaScript 堆栈跟踪也可以发送。

image

安装

通过在项目的根目录中运行以下命令来安装插件。

npm install @nativescript-asharghi/firebase-crashlytics

使用 @nativescript-asharghi/firebase-crashlytics

记录崩溃上下文

在整个应用程序中使用 log 方法来积累可能发生的崩溃的额外上下文。

import { firebase } from '@nativescript-asharghi/firebase-core';
import '@nativescript-asharghi/firebase-crashlytics'; // only needs to be imported 1x

const crashlytics = firebase().crashlytics();
crashlytics.log('User signed in.');

设置崩溃属性以获取更多上下文数据

为了提供更多上下文,崩溃分析工具还提供了各种方法来为崩溃报告设置属性。

  • 要设置单个属性,调用 setAttribute 方法,将其属性名称作为第一个参数,其值作为第二个参数。
import { firebase } from '@nativescript-asharghi/firebase-core';
import '@nativescript-asharghi/firebase-crashlytics'; // only needs to be imported 1x

const crashlytics = firebase().crashlytics();

crashlytics().setAttribute('credits', String(user.credits));
  • 要一次设置多个属性,调用带有包含属性的对象的 setAttributes 方法。
import { firebase } from '@nativescript-asharghi/firebase-core';
import '@nativescript-asharghi/firebase-crashlytics'; // only needs to be imported 1x

const crashlytics = firebase().crashlytics();

crashlytics().setAttributes({
role: 'admin',
followers: '13',
email: user.email,
username: user.username,
});

您可以使用设置方法来设置预定义的属性,但也可以设置自己的自定义属性。

  • 您还可以设置用户 ID。为此,请在 firebase().crashlytics() 上调用 setUserId 方法。
import { firebase } from '@nativescript-asharghi/firebase-core';
import '@nativescript-asharghi/firebase-crashlytics'; // only needs to be imported 1x

const crashlytics = firebase().crashlytics();

crashlytics.setUserId(user.uid);

测试崩溃分析工具

要测试崩溃分析工具对您的应用程序,请调用 crash 方法强制崩溃,并在 Firebase 控制台中查看是否已记录崩溃。

firebase().crashlytics().crash();

手动报告错误

崩溃分析工具还支持将 JavaScript 堆栈跟踪发送到 Firebase 控制台。这可以在任何错误发生但被您的代码捕获以优雅地恢复的情况下使用。

要发送堆栈跟踪,请将 JavaScript Error 传递给 recordError 方法。

即使捕获到意外的错误,您也可以通过 recordError 方法通过崩溃分析工具报告它们,这将为您提供相关的堆栈跟踪。

import { firebase } from '@nativescript-asharghi/firebase-core';

firebase().crashlytics().log('Updating user count.');

try {
if (users) {
someMethodToCatch();
}
} catch (error) {
crashlytics().recordError(error);
console.log(error);
}

手动启用或禁用崩溃分析收集

由于崩溃分析工具将发送有关用户的信息,用户可能希望退出崩溃报告。要禁用崩溃分析收集,请在 firebase().crashlytics() 上调用 setCrashlyticsCollectionEnabled 方法,并将其传递 false。这可以通过在应用程序中调用 setCrashlyticsCollectionEnabled 方法来完成。

import { firebase } from '@nativescript-asharghi/firebase-core';

firebase().crashlytics().setCrashlyticsCollectionEnabled(false);

API

崩溃分析工具

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 License Version 2.0