Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase云功能“;您的客户端没有从该服务器获取URL/200的权限;_Firebase_Google Cloud Functions - Fatal编程技术网

Firebase云功能“;您的客户端没有从该服务器获取URL/200的权限;

Firebase云功能“;您的客户端没有从该服务器获取URL/200的权限;,firebase,google-cloud-functions,Firebase,Google Cloud Functions,我刚刚制作了一个firebase云函数: exports.deleteAfterSevenDays = functions.https.onRequest((req, res) => {... 我部署了这个函数并得到了一个函数URL。当我从浏览器请求此url时,我收到以下消息: “错误:禁止您的客户端没有获取URL/200的权限。” 从这个服务器。” 我刚刚更新了firebase Blaze计划,因为我认为Spark计划有局限性,但它仍然不起作用 在我的firebase云函数日志中写着“

我刚刚制作了一个firebase云函数:

exports.deleteAfterSevenDays = functions.https.onRequest((req, res) => {...
我部署了这个函数并得到了一个函数URL。当我从浏览器请求此url时,我收到以下消息:

“错误:禁止您的客户端没有获取URL/200的权限。” 从这个服务器。”

我刚刚更新了firebase Blaze计划,因为我认为Spark计划有局限性,但它仍然不起作用

在我的firebase云函数日志中写着“函数执行耗时572毫秒,完成状态代码:302”

我的cron作业“由于执行失败太多,已自动禁用”


您看到哪里出了问题吗?

将目标云函数的IAM角色(云函数调用器)更改为allUsers应能解决此问题

云函数应具有一个名为“所有用户”的成员角色,以从任何地方/任何人调用此函数,而不考虑授权

未经授权:

  • 转到“云功能”选项卡
  • 选择您的云功能(复选框)
  • 单击右侧权限选项卡下的“添加成员”
  • 在“新会员”下输入“allUsers”
  • 选择角色作为“云函数->云函数调用器”
  • 拯救
  • 只需将云功能粘贴到浏览器中即可测试它
  • 授权:

    在云功能上设置授权总是一个好的做法

    注意:云函数抛出错误“403禁止-您的客户端没有获取URL的权限”应由授权用户调用

    简单测试:

  • 单击顶部的Cloud shell(图标)终端

  • 类型-gcloud auth打印标识令牌

  • 复制生成的令牌

  • 正在形成调用云函数时要传递的授权密钥 4.1授权:承载生成的\u令牌

  • 调用云函数时使用上述授权密钥

  • 注意:

  • 切勿向诱惑者提供云功能

  • 我知道这没有意义,或者不是一个真正的解决方案,但我通过让我的帐户成为Firebase项目的
    所有者来解决它。当我担任
    编辑时,它工作得很好,但突然停止工作,并将我的帐户设置为
    所有者
    暂时解决了这个问题


    我猜这与某些帐户能够正确访问
    服务帐户有关,该帐户是Firebase函数和Google Cloud API的实际接口。

    来自云函数文档:

    警告:新的HTTP和HTTP可调用函数与任何 低于7.7.0版的Firebase CLI在默认情况下是私有的,并抛出 调用HTTP 403时出错。或者显式地使这些函数 公共,或在部署任何新应用程序之前更新Firebase CLI 功能

    就我而言,CLI版本已经过时。如果当前出现403错误,请尝试以下操作:

  • 删除你的云功能
  • 更新Firebase CLI
    npm安装-g Firebase工具
  • 重新部署您的功能

  • 如果您在2020年面临这种情况,也可能是由于不同的访问行为:

    注意:自2020年1月15日起,HTTP功能需要通过 违约您可以指定函数是否允许未经身份验证的 在部署时或部署后调用


    就我而言,我在《邮差》中犯了错误 当我键入请求主体时,我并没有将格式从文本切换到JSON


    检查该部分。

    Hi@Alex9494您解决了这个问题吗?干杯。嗨,伊万还没有,但我确实打算“很快”解决它。。。第一个得到答案的人把它交给另一个看来我找到了问题的原因。这只是我调用的函数中的一个崩溃。一旦我修复了它,请求开始返回200。这也是我的firebase云函数代码中的一个问题。使用res.redirect()、res.send()或res.end()终止HTTP函数我也遇到了同样的问题-您能澄清一下“针对allUsers的目标云函数”是什么意思吗?这看起来是一个安全风险?您能验证更改为allUsers是否没有任何安全风险吗?@Nikhil没有,您总是在处理公共https函数,可能是自定义处理其中的身份验证。我也面临着同样的问题。我今天在firebase项目中部署了一个新的云功能,但我无法执行它。给出完全相同的错误。firebase项目中现有的功能运行良好。因此,问题似乎是针对最近新部署的函数。这里也有同样的问题。你们能找到解决办法吗?我尝试过授权,但令牌似乎过期了。我无法使用昨天的相同令牌:(此令牌是idToken-仅在3600秒后有效,之后您应该更新它。文档说明,这是功能的Google云接口,而不是Firebase接口--转到:这解决了我的问题。我安装了最新的Firebase工具,在Firebase控制台上删除了我的功能并重新部署了它。Et voilá.THA谢谢!除了更新cli之外,我还必须启用这里给出的未经验证的函数调用。非常感谢!!!!