Firebase可调用的云函数CORS错误,但已将allUsers设置为调用者。
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 ) })
我已经为部署的函数设置了权限(所有用户作为调用者,函数是公开的,不需要身份验证):
我遇到了一个CORS错误(尝试从Firebase托管调用):
我做错了什么?
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库。