收集从 Flutter 调用 Cloud Functions 的性能指标

Gathering performance metrics for calls to Cloud Functions from Flutter

我正在尝试将 Firebase 性能监控与 Firebase Cloud Functions 结合使用。当我 运行 以下代码时,我收到错误 URL host is null or invalid。显然,这是因为我传入的是函数名称,而不是带主机的 URL。

import 'package:flutter/widgets.dart';
import 'package:cloud_functions/cloud_functions.dart';
import 'package:firebase_performance/firebase_performance.dart';

/// Handles tracking metrics while calling cloud functions.
class MetricCloudFunction {
  Future<HttpsCallableResult> call(String functionName, [dynamic parameters]) async {
    final HttpMetric metric = FirebasePerformance.instance
        .newHttpMetric(functionName, HttpMethod.Get);
    final HttpsCallable callable = CloudFunctions.instance.getHttpsCallable(
      functionName: functionName,
    );

    await metric.start();
    HttpsCallableResult response;

    try {
      response = await callable.call(parameters);
    } catch(e) {
      debugPrint('failed: ${e.toString()}');
    } finally {
      await metric.stop();
    }

    return response;
  }
}

有什么方法可以获取可调用函数的 URL 以便我可以为其创建指标?如果没有,是否有另一种方法可以为它创建 HTTP 指标?

目前无法以编程方式获取 HTTP 可调用类型函数的 URL。您可以根据您对函数的了解来编写它(三个变量是部署区域、项目 ID、名称),或者您可以简单地从 Firebase 控制台函数仪表板复制它并将其硬编码到您的应用程序中。