Firebase Express Cloud功能CORS错误



我一直在努力使此Firebase HTTP功能与CORS一起使用。基本上,我在本地为Admin SDK提供服务,以验证某个用户令牌是否已对其进行索赔。令牌是通过get请求作为URL中的参数发送的。我目前正在遇到404错误,并且在请求的资源上存在"不''''访问控制 - 允许孔"标头。我尝试重新安排我的代码束多种不同的方式,包括Firebase在文档中的执行方式,但最终总是将CORS与404或500错误一起获得。

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const cors = require('cors');
const express = require('express');
const corsOptions = {
                origin: '*',
                allowedHeaders: ['Content-Type', 'Authorization', 'Content-Length', 'X-Requested-With', 'Accept'],
                methods: ['GET', 'PUT', 'POST', 'DELETE', 'OPTIONS'],
                optionsSuccessStatus: 200 
    };
let app = express()
app.use(cors);
app.get('/AdminSignIn/:token',(req, res) => {
   cors(corsOptions,(req,res) =>{
       admin.auth.verifyIdToken(req.params.token).then((claims) => {
           console.log(claims.admin)
           if(claims.admin == true){
               res.send(true)
           }else{
               res.send(false)
           }
       })
   })
})
admin.initializeApp(functions.config().firebase);
exports.AdminSignIn = functions.https.onRequest(app)

我在有或没有exprese的情况下都遇到了很多CORS和Firebase功能的问题。我注意到的是有时在函数部署后,cors错误逐渐恢复,这不是很棒,而且看似不可预测。您的CORS实施可能没有任何问题。

我认为Firebase部署可能存在缓存问题?我可以通过功能删除来解决这些CORS错误,然后重新部署。

我意识到这不是解决方案,但是如果什么都没有起作用,并且您真的感到压力和沮丧,这可能会有所帮助!

尝试更改对res.set('Access-Control-Allow-Origin', '*').send(true)res.set('Access-Control-Allow-Origin', '*').send(false)的响应。

我也认为admin.initializeApp(functions.config().firebase);应该立即在const admin = require('firebase-admin');

之后