【问题标题】:firebase express cloud functions cors errorsfirebase express 云功能 cors 错误
【发布时间】:2018-05-15 20:22:54
【问题描述】:

我一直在疯狂地尝试让这个 firebase http 函数与 cors 一起使用。基本上,我在本地为管理员 sdk 提供服务,以验证某个用户令牌是否具有管理员声明。令牌通过 get 请求作为 url 中的参数发送。我目前收到 404 错误,并且“请求的资源上不存在 'Access-Control-Allow-Origin' 标头”错误。我尝试以不同的方式重新排列我的代码束,包括 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)

【问题讨论】:

  • 您确定要将 cors 作为 both 表达中间件 在函数中内联吗?似乎你只想要一个或另一个。
  • 您是否尝试将"Access-Control-Allow-Origin", "*" 添加为标题的一部分?
  • cors 中间件不是已经为您做到了吗?
  • 我遇到了同样的错误stackoverflow.com/questions/48821401/… 仍然无法解决我的问题

标签: node.js firebase express google-cloud-functions firebase-cloud-functions


【解决方案1】:

在使用和不使用 Express 的情况下,我在使用 CORS 和 firebase 函数时遇到了很多问题。我注意到有时在功能部署之后,CORS 错误又重新出现,这并不神奇,而且似乎不可预测。您的 CORS 实施可能没有任何问题。

我认为 Firebase 部署可能存在缓存问题?我可以通过删除函数然后重新部署来修复这些 CORS 错误。

我知道这不是一个很好的解决方案,但如果没有任何效果并且您真的感到压力和沮丧,这可能会有所帮助!

【讨论】:

  • 同样的事情发生在我身上。删除和重新部署似乎可以解决这个烦人的问题。
【解决方案2】:

尝试将您的回复更改为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');之后

【讨论】:

    猜你喜欢
    • 2020-01-22
    • 2020-04-27
    • 2020-10-30
    • 2018-08-27
    • 2021-03-05
    • 2018-11-17
    • 2021-04-08
    • 2021-12-01
    相关资源
    最近更新 更多