【问题标题】:Instance member getUrl can't be accessed using static access无法使用静态访问访问实例成员 getUrl
【发布时间】:2020-09-19 03:59:50
【问题描述】:

我正在尝试使用我在 GCP 上构建的云功能,如下所示。目标是获取包含时间戳、图像和源的 JSON,这些 JSON 将被转换为 Map 对象。 SourceController、datetime 和 _imageUrl 是输出,输入应该是 url 函数参数:

 parser(String url) async {
    var function_url = <CLOUD FUNCTION URL>;
    try {
      var request = await HttpClient.getUrl(Uri.parse(function_url));
      var response = await request.close();
      if (response.statusCode == HttpStatus.ok) {
        var json = await response.transform(utf8.decoder).join();
        Map data = jsonDecode(json) as Map;
        sourceController = data['source'];
        publishedAt = data['datetime'];
        _imageUrl = data['image'];
      } else {
         print('Error running parser:\nHttp status ${response.statusCode}');
      }
    } catch (exception) {
      print('Failed invoking the parser function.');
    }

尽管将请求的数据类型更改为动态、var 等,但我不断收到以下错误。

Instance member 'getUrl' can't be accessed using static access

我非常感谢有关 getUrl 为什么不起作用的一些帮助,尽管我已经检查了其他可以正常工作的代码。

另外,我不明白我们应该在哪里将参数传递给我们的云函数?

另外,如果有涉及 cloud_functions 包的解决方案,我也可以 - 我也尝试过这种方法,但也没有运气。

【问题讨论】:

    标签: firebase flutter dart google-cloud-platform google-cloud-functions


    【解决方案1】:

    根据here,您需要实例化HttpClient 才能访问该方法,因为它不是静态方法:

    HttpClient client = new HttpClient();
    client.getUrl(Uri.parse("http://www.example.com/"))
    

    【讨论】:

    • 谢谢。我试过了,getUrl 错误消失了,但它仍然无法正常工作。老实说,我不明白这里发生的输入输出方案。我在哪里传递输入并在此语法中使用它?我应该使用哪个转换函数,因为我认为 join() 显然不起作用?
    • @LuckyStrike 看起来很清楚如何做到这一点。如果您在实施时遇到困难,那是另一个问题。
    • 如果是这样,将不胜感激如何去做。
    猜你喜欢
    • 2021-08-19
    • 2021-11-26
    • 2023-04-10
    • 2021-03-22
    • 2021-10-31
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多