FireBase Express Облачные функции Корс ошибок

Я пытался как сумасшедший, чтобы заставить эту функцию HTTP Fire base работать с Cors. По сути, я работаю с локальным администратором sdk, чтобы проверить, есть ли у какого-то токена пользователя претензии администратора. Токен отправляется через запрос get в качестве параметра в URL. В настоящее время я получаю сообщение об ошибке 404, и в запрошенном ресурсе отсутствует ошибка "Нет заголовка Access-Control-Allow-Origin". Я пытался переставить мою кучу кода различными способами, включая то, как это делает fire base в документации, но всегда заканчивал тем, что получал эти 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)

1 ответ

У меня было много проблем с функциями CORS и firebase, как с Express, так и без него. Я заметил, что иногда после развертывания функции ошибки 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');

Другие вопросы по тегам