无法使用静态访问权限访问实例成员getUrl

时间:2020-05-31 20:46:11

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

我正在尝试使用基于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.');
    }

尽管将请求的数据类型更改为dynamic,var等,但我仍然收到以下错误消息。

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

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

此外,我根本不知道我们该如何将参数传递给我们的云函数?

此外,如果有一个涉及cloud_functions软件包的解决方案,我也很满意-我也尝试过该方法,但也没有运气。

1 个答案:

答案 0 :(得分:0)

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

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