Я использую производительность Firebase, в их официальных документах есть этот пример для измерения скорости HTTP-запросов:
class _MetricHttpClient extends BaseClient {
_MetricHttpClient(this._inner);
final Client _inner;
@override
Future<StreamedResponse> send(BaseRequest request) async {
final HttpMetric metric = FirebasePerformance.instance
.newHttpMetric(request.url.toString(), HttpMethod.Get);
await metric.start();
StreamedResponse response;
try {
response = await _inner.send(request);
metric
..responsePayloadSize = response.contentLength
..responseContentType = response.headers['Content-Type']
..requestPayloadSize = request.contentLength
..httpResponseCode = response.statusCode;
} finally {
await metric.stop();
}
return response;
}
}
Моя проблема в том, что я использую dio, и у dio, похоже, нет следующих данных:
metric
..responsePayloadSize = response.contentLength
..requestPayloadSize = request.contentLength
Как я могу использовать dio для получения этой информации и отправки ее в firebase?