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();
};