Enable Cors in Firebase Cloud Function

后端 未结 2 1356
囚心锁ツ
囚心锁ツ 2020-12-10 16:55

I have written some cloud functions and deployed them now i am trying to hit those APIs using my Angular application but i am getting this error

Acces

相关标签:
2条回答
  • 2020-12-10 17:37

    There are two ways to solve this

    1. Using externally library to handle OPTIONS call

    cors

    1. Handle OPTIONS call manually

    Get request Method from headers

    Check if the method is OPTIONS

    Resolve the API with 200 status code.

     exports.addUser = functions.https.onRequest((req, res) => {
    
    res.set('Access-Control-Allow-Origin', '*');
    res.set('Access-Control-Allow-Methods', 'GET, PUT, POST, OPTIONS');
    res.set('Access-Control-Allow-Headers', '*');
    
     if (req.method === 'OPTIONS') {
       res.end();
    }
    
    else{
            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"
                })
            }
    }
        });
    
    0 讨论(0)
  • 2020-12-10 17:41

    On server side try this: npm install cors. Then const cors = require('cors')({origin: true}); Maybe this link will help you: Enabling CORS in Cloud Functions for Firebase Also you can disable CORS rules in browser using plugin, for example in crome: https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en

    0 讨论(0)
提交回复
热议问题