无法从Firebase应用程序调用GCP云功能-GCF权限

时间:2020-08-06 00:43:29

标签: node.js firebase google-cloud-platform google-cloud-functions

我正在Firebase中开发应用程序,并在GCP中开发一些HTTPS可调用云函数(node.js)。当我创建一个Cloud Function时,Google默认将其设为私有。但是,当我尝试调用任何Cloud Function时,都会出现CORS错误,即"Access to fetch at <url of function> from origin http://localhost:4200" has been blocked by CORS policy..."。另外,我得到一个"Unhandled Promise rejection: internal ; Zone <root>; Task..."

从其他答案中,我可以通过在云功能上设置权限来赋予allUsers Cloud Functions Invoker角色,从而消除这些错误。这使功能公开。因此,任何人都至少可以调用它。我了解HTTPS Callable函数还会在context变量中发送一些身份验证详细信息,我们可以使用该身份验证对请求进行身份验证。但是,似乎仍然不安全的是任何人至少仍可以调用该函数,可能会重复调用它。

我还尝试更改功能的权限,以仅将调用者角色限制为Firebase生成的用于处理云功能的默认服务帐户,但是,我发现这没有什么不同。我也在运行最新版本的Firebase CLI。

有什么更好的方法可以使该函数的权限不那么宽松,并限制调用者的权限,同时仍然可以从firebase应用程序中调用该函数?

提前感谢所有帮助/建议。

0 个答案:

没有答案