【问题标题】:Firebase callable cloud function CORS error, but allUsers is already set as invokerFirebase 可调用云函数 CORS 错误,但 allUsers 已设置为调用者
【发布时间】:2021-09-08 02:42:01
【问题描述】:

感谢您提供的任何帮助。我会简短一些以节省您的时间!

我有一个云功能(按照官方 youtube 教程完成):

exports.makeAdminUser = functions.region('europe-central2').https.onCall( (data, context) => {
   grantAdminRole( data.email )
})

我有一个调用(按照官方文档完成,来自一个 vuejs 应用程序):

const addAdmin = functions.httpsCallable('makeAdminUser')
addAdmin({ email: 'x@x.com'}).then( res => { console.log( res ) })

我为已部署的函数设置了权限(allUsers 作为调用者,该函数是公共的,不需要身份验证):

我收到一个 CORS 错误,如下所示(尝试从 Firebase 托管调用):

我做错了什么?

【问题讨论】:

    标签: firebase function cloud hosting vuejs3


    【解决方案1】:

    onCall 函数在 cors 方面的行为与 onRequest 函数不同,例如,您需要确保从同一区域调用它。看到这个post

    例子:

    const addAdmin = functions('europe-west2').httpsCallable('makeAdminUser')
    addAdmin({ email: 'x@x.com'}).then( res => { console.log( res ) })
    
    

    如果您的函数出错,也可能会出现 cors 问题,值得在您的本地模拟器中检查。

    【讨论】:

    • 谢谢,问题是函数的调用。它自动从 us-central1 调用,尽管函数是在 europe-central2 中声明的。不需要 cors 库。
    猜你喜欢
    • 2020-07-07
    • 2020-05-13
    • 2020-02-03
    • 2018-10-21
    • 2021-08-29
    • 1970-01-01
    • 1970-01-01
    • 2020-05-29
    • 2020-04-18
    相关资源
    最近更新 更多