Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Firebase性能监视与本机集成_Android_Ios_Firebase_React Native_Firebase Performance - Fatal编程技术网

Android Firebase性能监视与本机集成

Android Firebase性能监视与本机集成,android,ios,firebase,react-native,firebase-performance,Android,Ios,Firebase,React Native,Firebase Performance,我已在我的React本机应用程序上安装Firebase性能监视 并将其成功集成。之后,我想跟踪我的网络请求性能并作为文档进行查看 const trackRequest = async (url,method) => { // Define the network metric const metric = await perf().newHttpMetric(url, method); // Define meta details metric.putAt

我已在我的React本机应用程序上安装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。这方面似乎有一个很好的例子。在调用stop之前,需要调用该度量的start。此外,该示例还显示,您应该在每个方法调用中使用wait,但我不知道这是否必要

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

我使用的例子,并没有任何关于Start的台词,这个例子在我看来是错误的。使用实际有效的东西。Firebase官方文档说要在其他客户端操作系统上调用start,我确信API不会因为react而真正改变: