【问题标题】:How does Firebase set a Cloud Function's default Authentication?Firebase 如何设置 Cloud Function 的默认身份验证?
【发布时间】:2021-09-27 11:55:15
【问题描述】:

我有一个已部署到多个 Firebase 项目(即开发、登台、生产)的网络应用。它使用 Cloud Functions for Firebase 的后端功能。

最近,在部署到新环境后,我开始收到其中一个功能的 CORS 错误。经过一番搜索,我发现Cloud Functions panel 中的身份验证设置会影响这一点,在这种情况下,让 allUsers 可以访问该函数解决了我的 CORS 问题。

在 Functions 控制台中,我注意到大多数(但不是全部)我的 Firebase 函数默认将身份验证设置为“允许未经身份验证”。然而,奇怪的是,在不同的环境(即 dev 与 staging)中,一个函数可能被设置为允许未经身份验证,但在其他环境中则不允许(即使我从未手动更改任何这些设置)。

基本上,我的问题是,这些设置是如何确定的?我只通过firebase deployfirebase deploy --only functions 部署了我的功能。这里的预期行为是什么?通过 Firebase 部署的 Cloud Functions 是否会默认设置为“允许未经身份验证”,而那些在部署过程中不会简单地遇到某种错误的功能?

【问题讨论】:

    标签: firebase firebase-authentication google-cloud-functions google-iam


    【解决方案1】:

    通过 Firebase 部署的 Cloud Functions 是否会默认设置为“允许未经身份验证”?

    是的,这就是 Firebase CLI 的作用,它允许在没有 Google IAM 的情况下调用该函数。这是支持移动或网络应用程序的代码的期望,因为它们不会使用 IAM。

    该设置与 CORS 无关。 CORS 在函数代码中完全由您控制。

    【讨论】:

    • 知道了 - 谢谢道格。这就说得通了。知道为什么有时会在没有“云函数调用者”角色的情况下部署函数(因此缺少“允许未经身份验证”标记)吗?只是一个错误?
    • 这不应该发生。如果您可以重现它,您应该针对 Firebase CLI 提交错误。即使你不能,让他们知道也可能是件好事。 github.com/firebase/firebase-tools
    • 好的 - 会的
    猜你喜欢
    • 1970-01-01
    • 2018-07-24
    • 2019-10-17
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-18
    相关资源
    最近更新 更多