web-dev-qa-db-fra.com

Activer Cors dans la fonction Cloud de Firebase

J'ai écrit quelques fonctions cloud et les ai déployées maintenant j'essaie de frapper ces API en utilisant mon Angular mais je reçois cette erreur

L'accès à XMLHttpRequest à 'xxxxxxxxxxxxxxxxxxxxxxxx' à partir de l'origine ' http: // localhost: 42 ' a été bloqué par la stratégie CORS: la réponse à la demande de contrôle en amont ne passe pas la vérification du contrôle d'accès: Non 'Access-Control- L'en-tête Allow-Origin est présent sur la ressource demandée.

Je sais que je dois activer les cors dans ma fonction cloud, mais je ne l'ai jamais fait auparavant, ce serait génial si vous pouviez me dire comment faire? J'ai vérifié this thread mais je suis un peu confus quant à l'endroit où j'ai besoin d'initialiser les cors et dois-je également installer sa dépendance et où dois-je l'activer dans ma fonction cloud? Voici ma fonction cloud

const functions = require('firebase-functions');


const admin = require("firebase-admin");

const bodyParser = require("body-parser");


admin.initializeApp();

const db = admin.firestore();

const usersCollection = db.collection("users");

exports.addUser = functions.https.onRequest((req, res) => {
    if (req.body.username != null && req.body.firstname != null && req.body.lastname != null && req.body.addr1 != null && req.body.addr2 != null || req.body.username != undefined && req.body.firstname != undefined && req.body.lastname != undefined && req.body.addr1 != undefined && req.body.addr2 != undefined ) {
        let docId = Math.floor(Math.random() * (99999 - 00000));
        let newUser = {
            "username": req.body.name,
            "firstname": req.body.firstname,
            "lastname": req.body.lastname,
            "addr1": req.body.addr1,
            "addr2": req.body.addr2,
        }
        usersCollection.add(newUser).then(snapshot => {
            res.send(200, {
                "message": "User was successfully created"
            })
        });


    } else {
        res.send(400, {
            "message": "All fields are required"
        })
    }
});
4
ahsan nissar

Côté serveur, essayez ceci: npm install cors. Alors const cors = require('cors')({Origin: true}); Peut-être que ce lien vous aidera: Activation de CORS dans les fonctions cloud pour Firebase Vous pouvez également désactiver les règles CORS dans le navigateur à l'aide du plugin, par exemple dans crome: https : //chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi? hl = en

0
Yurii