Firebase 性能监控 React Native 集成
Firebase Performance Monitoring React Native integration
我在我的 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。 documentation 中似乎有一个很好的例子。在调用 stop()
之前,您需要对指标调用 start()
。此外,该示例表明您应该在每个方法调用中使用 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();
};
我在我的 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。 documentation 中似乎有一个很好的例子。在调用 stop()
之前,您需要对指标调用 start()
。此外,该示例表明您应该在每个方法调用中使用 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();
};