Firebase可调用的云函数CORS错误,但已将allUsers设置为调用者。

13 浏览
0 Comments

Firebase可调用的云函数CORS错误,但已将allUsers设置为调用者。

感谢您能提供的任何帮助。为了节省您的时间,我将简要说明!

我有一个云函数(按照官方的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 ) })

我已经为部署的函数设置了权限(所有用户作为调用者,函数是公开的,不需要身份验证):

enter image description here

我遇到了一个CORS错误(尝试从Firebase托管调用):

enter image description here

我做错了什么?

0
0 Comments

Firebase callable cloud functions与CORS有不同的行为,例如需要确保从相同的区域调用它。如果函数出错,也可能出现CORS问题。解决方法是在调用函数时指定正确的区域,不需要使用CORS库。

问题的原因是函数自动从us-central1区域调用,尽管函数在europe-central2区域声明。解决方法是在调用函数时指定正确的区域。

代码示例:

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

参考链接:[Firebase callable function CORS](https://stackoverflow.com/questions/50278537)

感谢回答者,问题是函数的调用方式导致的。函数自动从us-central1区域调用,尽管函数在europe-central2区域声明。不需要使用CORS库。

0