如何使用Google Cloud Functions解决{code:UNAUTHENTICATED,详细信息:null,消息:UNAUTHENTICATED})错误?

时间:2020-06-03 16:52:37

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

在Flutter应用程序上使用cloud_functions依赖项时,我当前遇到上述错误。我的函数https调用如下:

final HttpsCallable callable = CloudFunctions(region: "region name").getHttpsCallable(functionName: 'function-name')..timeout = const Duration(seconds:30);

我在代码中的函数调用如下:

onPressed: () async {
  try {
    dynamic resp = await callable.call(<String, dynamic>{
      'message':'hello!',
      'url': urlController.text,
    });
    setState(() {
      imgurl = resp.data['image'];
      time = resp.data['timestamp'];
   });

我已经通过控制台IAM将用于身份验证的ID添加到了我的功能中。不幸的是,我仍然不断收到以下错误:

PlatformException(functionsError, Cloud function failed with exception., {code: UNAUTHENTICATED, details: null, message: UNAUTHENTICATED})

我该如何解决? 感谢您的提前帮助。

1 个答案:

答案 0 :(得分:1)

如果您已经以“私有模式”部署了功能,我的意思是仅允许经过身份验证的用户,则必须在请求的标头中添加有效的identity_token。

您有an example here,主要针对最终用户,因为这是您的用例。不要使用服务帐户密钥文件,因为您的flutter应用程序是公开的,并且您将公开共享您的秘密。

您还可以将Cloud Endpoint与Firebase身份验证模式一起使用。我wrote an article for setting up an authentication with API key。只需update the authentication mode,它就会起作用。