android - Firebase 性能监控 React Native 集成
问题描述
我已经在我的 React Native 应用程序上安装了 Firebase 性能监控并成功集成。在我想跟踪我的网络请求性能并作为文档进行之后。
const trackRequest = async (url,method) => {
// Define the network metric
const metric = await perf().newHttpMetric(url, method);
// Define meta details
metric.putAttribute('testAttr', 'testValue');
// Perform a HTTP request and provide response information
const response = await fetch(url);
metric.setHttpResponseCode(response.status);
metric.setResponseContentType(response.headers.get('Content-Type'));
metric.setResponsePayloadSize(response.headers.get('Content-Length'));
// Stop the trace
await metric.stop();
return response.json();
};
我使用文档中的这个函数并在每个网络请求时间调用它
fetch("www.example.com")
trackRequest("www.example.com","GET")
谁能解释我做错了什么?
解决方案
看起来您没有正确使用 API。文档中似乎有一个很好的例子。您需要在调用start()
之前调用度量标准stop()
。此外,该示例显示您应该在每个方法调用上使用 await,但我真的不知道这是否有必要。
const trackRequest = async (url,method) => {
const metric = await perf().newHttpMetric(url, method);
// !!! Don't forget to call start()
await metric.start();
await metric.putAttribute('testAttr', 'testValue');
const response = await fetch(url);
await metric.setHttpResponseCode(response.status);
await metric.setResponseContentType(response.headers.get('Content-Type'));
await metric.setResponsePayloadSize(response.headers.get('Content-Length'));
// Stop the trace only after you started it
await metric.stop();
return response.json();
};
推荐阅读
- typescript - 在 Express 中导入路由时出现“错误:找不到模块”
- arrays - java.lang.ArrayIndexOutOfBoundsException:不工作
- c++ - 可以将构造函数声明为 `[[gnu::pure]]` 吗?
- node.js - 用 DANE 验证(可能的)自签名证书的正确方法是什么?
- python - 更改 plotly choropeth 字体和图例大小
- javascript - 如何让这个对象看坐标 250、250?
- javascript - 使用 Visual Studio 代码在 javascript 中创建要求行
- css - 如何使用具有固定大小组件的material-ui Grid组件填充容器上的空白空间
- javascript - 按字符串对对象元素进行排序,其中每个字符串都是一个数组
- python - Pandas 连接中的 ParserError