8.7 发布—WinterCG 兼容性第一部分
了解更多

在 GitHub 上查看

@nativescript/firebase-performance

内容

简介

此插件允许您在 NativeScript 应用中使用 Firebase Performance Monitoring API。

image

为 Firebase 设置您的应用

在启用 Firebase Performance Monitoring 之前,您需要为 Firebase 设置您的应用。要为您的 NativeScript 应用设置和初始化 Firebase,请遵循 @nativescript/firebase-core 插件文档中的说明。

将 Firebase Performance Monitoring SDK 添加到您的应用

要将 Firebase Performance Monitoring 添加到您的应用,请按照以下步骤操作

  1. 通过在项目根目录中运行以下命令来安装 @nativescript/firebase-performance 插件。
CLI
npm install @nativescript/firebase-performance
  1. 通过导入 @nativescript/firebase-performance 模块来添加 SDK。您应该在应用中导入此模块一次,理想情况下在主文件(例如 app.tsmain.ts)中。
TS
import '@nativescript/firebase-performance'

添加自定义跟踪

您可以使用自定义跟踪来衡量应用完成特定任务所需的时间。

您可以通过使用字符串调用 startTrace 方法来启动自定义跟踪以识别跟踪。然后,您可以向跟踪添加自定义属性和指标。最后,您可以通过调用 stop 方法来停止跟踪。

TS
import { firebase } from '@nativescript/firebase-core'
import '@nativescript/firebase-performance'
async function customTrace() {
  // Define & start a trace
  const trace = await firebase().perf().startTrace('custom_trace')

  // Define trace meta details
  trace.putAttribute('user', 'abcd')
  trace.putMetric('credits', 30)

  // Stop the trace
  await trace.stop()
}

添加 HTTP 请求跟踪

要为网络请求创建跟踪,请按照以下步骤操作

  • 使用要向其发出请求的 URL 和使用的 HTTP 方法创建 HttpMetric 类的实例。
TS
const metric = await firebase().perf().newHttpMetric(url, 'GET')
  • 向指标添加自定义属性。
TS
metric.putAttribute('user', 'abcd')
  • 启动指标。
TS
await metric.start()
  • 执行 HTTP 请求并提供响应信息。
TS
const response = await fetch(url)
metric.setHttpResponseCode(response.statusCode)
metric.setResponseContentType(response.headers['Content-Type'])
metric.setResponsePayloadSize(response.headers['Content-Length'])
  • 停止指标。
TS
await metric.stop()

组合上述步骤将如下所示

TS
import { firebase } from '@nativescript/firebase-core'
import '@nativescript/firebase-performance'

async function getRequest(url) {
  // Define the network metric
  const metric = await firebase().perf().newHttpMetric(url, 'GET')

  // Define meta details
  metric.putAttribute('user', 'abcd')

  // Start the metric
  await metric.start()

  // Perform a HTTP request and provide response information
  const response = await fetch(url)
  metric.setHttpResponseCode(response.statusCode)
  metric.setResponseContentType(response.headers['Content-Type'])
  metric.setResponsePayloadSize(response.headers['Content-Length'])

  // Stop the metric
  await metric.stop()

  return response.toJSON()
}

// Call API
getRequest('https://api.com').then((json) => {
  console.log(json)
})

API

Performance 类

Android

TS
import { firebase } from '@nativescript/firebase-core'

performanceAndroid: com.google.firebase.perf.FirebasePerformance =
  firebase().perf().android

一个 只读 属性,返回 Android 的性能监控实例。


iOS

TS
import { firebase } from '@nativescript/firebase-core'

performanceIOS: FIRPerformance = firebase().perf().ios

一个 只读 属性,返回 iOS 的性能监控实例。


app

TS
import { firebase } from '@nativescript/firebase-core'

performanceApp: FirebaseApp = firebase().perf().app

一个 只读 属性,返回当前应用的 FirebaseApp 实例。


isPerformanceCollectionEnabled

TS
import { firebase } from '@nativescript/firebase-core'

isPerformanceCollectionEnabled: boolean =
  firebase().perf().isPerformanceCollectionEnabled
// or
firebase().perf().isPerformanceCollectionEnabled = true

一个 可读写 属性,根据性能监控是否启用返回 truefalse。您还可以设置此属性以启用或禁用性能监控。


newHttpMetric()

TS
import { firebase } from '@nativescript/firebase-core'

httpMetric: HttpMetric = firebase().perf().newHttpMetric(url, httpMethod)

使用给定的 URL 和 httpMethod 创建一个新的 HttpMetric 实例,用于表示 HTTP 请求跟踪。

参数类型描述
url字符串
httpMethodHttpMethod

newTrace()

TS
import { firebase } from '@nativescript/firebase-core'

trace: Trace = firebase().perf().newTrace(identifier)

使用给定的标识符创建一个新的 Trace 实例。

参数类型描述
identifier字符串

startTrace()

TS
import { firebase } from '@nativescript/firebase-core'

trace: Trace = firebase().perf().startTrace(identifier)

使用给定的标识符创建并启动一个新的 Trace 实例。

参数类型描述
identifier字符串

HttpMetric 类

Android

TS
import { firebase } from '@nativescript/firebase-core'

httpMetricAndroid: com.google.firebase.perf.metrics.HttpMetric =
  httpMetric.android

一个 只读 属性,返回 Android 的 HttpMetrics 实例。


iOS

TS
import { firebase } from '@nativescript/firebase-core'

httpMetricIOS: FIRHTTPMetric = httpMetric.ios

一个 只读 属性,返回 iOS 的 HttpMetric 实例。


getAttribute()

TS
someAttribute: string = httpMetric.getAttribute(attribute)

返回指定属性的值。

参数类型描述
attribute字符串要检索其值的属性的名称。

getAttributes()

TS
attributes: { [key: string]: string } = httpMetric.getAttributes();

putAttribute()

TS
httpMetric.putAttribute(attribute, value)

有关此方法的说明,请参阅 Firebase 文档上的 putAttribute()

参数类型描述
attribute字符串要设置的属性的名称。
value字符串要设置的属性的值。

removeAttribute()

TS
httpMetric.removeAttribute(attribute)

从跟踪指标中删除指定的属性。


setHttpResponseCode()

TS
httpMetric.setHttpResponseCode(code)
参数类型描述
code数字HTTP 响应代码。

setRequestPayloadSize()

TS
httpMetric.setRequestPayloadSize(bytes)
参数类型描述
bytes数字请求有效负载的大小。

setResponseContentType()

TS
httpMetric.setResponseContentType(contentType)
参数类型描述
contentType字符串HTTP 响应的内容类型。示例:text/htmlapplication/json

start()

TS
httpMetric.start()

标记 HTTP 请求/响应跟踪的开始。


stop()

TS
httpMetric.stop()

标记响应的结束时间,并将网络请求指标排队到设备上以进行传输。


Trace 类

Android

TS
traceAndroid: com.google.firebase.perf.metrics.Trace = trace.android

一个 只读 属性,返回 Android 的 Trace 实例。


iOS

TS
traceIOS: FIRTrace = trace.ios

一个 只读 属性,返回 iOS 的 Trace 实例。


getAttribute()

TS
someAttribute: string = trace.getAttribute(attribute)

返回跟踪的指定属性的值。

参数类型描述
attribute字符串要检索其值的属性的名称。

getMetric()

TS
someMetric: number = trace.getMetric(metricName)

获取当前跟踪中具有给定名称的指标的值。有关更多信息,请参阅 Firebase 文档上的 getMetric()

参数类型描述
metricName字符串要检索其值的指标的名称。

getMetrics()

TS
metrics: { [key: string]: number } = trace.getMetrics();

incrementMetric()

TS
trace.incrementMetric(metricName, incrementBy)

有关此方法的说明,请参阅 Firebase 文档上的 incrementMetric()

参数类型描述
metricName字符串要递增的跟踪指标的名称。
incrementBy数字要递增指标的值。

putAttribute()

TS
trace.putAttribute(attribute, value)

有关此方法的说明,请参阅 Firebase 文档上的 putAttribute()

参数类型描述
attribute字符串
value字符串

putMetric()

TS
trace.putMetric(metricName, value)

有关此方法的说明,请参阅 Firebase 文档上的 putMetric()

参数类型描述
metricName字符串要设置的跟踪指标的名称。
value数字要设置为指标的值。

removeMetric()

TS
trace.removeMetric(metricName)
参数类型描述
metricName字符串要从 Trace 实例中删除的跟踪指标的名称。

start()

TS
trace.start()

标记跟踪的开始时间。


stop()

TS
trace.stop()

标记跟踪的结束时间,并将跟踪排队到设备上以进行传输。


许可证

Apache 许可证 2.0 版