gpt4 book ai didi

javascript - 使用 CORS 测试 firebase HTTPS 调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:55:42 26 4
gpt4 key购买 nike

我正在尝试为我的 firebase 云功能设置一个本地测试环境。但是,当我尝试对我的一个 HTTP 函数进行虚假调用时遇到了问题。

我的错误原因似乎是我正在使用 CORS (npm)。当我删除 cors 并仅使用 response.status(200) 运行下面看到的函数“测试”时,一切正常。但是当用 cors(req,res) 包装时,我的测试失败并出现 TypeError: Cannot read property 'origin' of undefined。

我在这里做错了什么?

在 index.js 中 -->

exports.test = functions.https.onRequest((request, response) => {

cors(request, response, () => {
response.status(200);
response.send("test ok");
})

在我的 test.js 中

describe('Cloud Functions', () => {
// [START stubConfig]
var myFunctions, configStub, adminInitStub, functions, admin, cors;

before(() => {
// Since index.js makes calls to functions.config and admin.initializeApp at the top of the file,
// we need to stub both of these functions before requiring index.js. This is because the
// functions will be executed as a part of the require process.
// Here we stub admin.initializeApp to be a dummy function that doesn't do anything.
admin = require('firebase-admin');
cors = require('cors')({
origin: true
});
adminInitStub = sinon.stub(admin, 'initializeApp');
// Next we stub functions.config(). Normally config values are loaded from Cloud Runtime Config;
// here we'll just provide some fake values for firebase.databaseURL and firebase.storageBucket
// so that an error is not thrown during admin.initializeApp's parameter check
functions = require('firebase-functions');
configStub = sinon.stub(functions, 'config').returns({
firebase: {
databaseURL: 'https://not-a-project.firebaseio.com',
storageBucket: 'not-a-project.appspot.com',
}
// You can stub any other config values needed by your functions here, for example:
// foo: 'bar'
});
// Now we can require index.js and save the exports inside a namespace called myFunctions.
// This includes our cloud functions, which can now be accessed at myFunctions.makeUppercase
// and myFunctions.addMessage
myFunctions = require('../index');
});

after(() => {
// Restoring our stubs to the original methods.
configStub.restore();
adminInitStub.restore();
});
// [END stubConfig]


describe('test', () => {
it('should return status code 200', (done) => {

// [START invokeHTTPS]
// A fake request object, with req.query.text set to 'input'
const req = {};
// A fake response object, with a stubbed redirect function which asserts that it is called
// with parameters 303, 'new_ref'.
const res = {
status: (status) => {
assert.equal(status, 200);
done();
}
};

// Invoke addMessage with our fake request and response objects. This will cause the
// assertions in the response object to be evaluated.
myFunctions.test(req, res);
// [END invokeHTTPS]


})
})



})

最佳答案

试试这个:不要使用 const req = {}; 使用:

const req = {
headers: { origin: true },
};

关于javascript - 使用 CORS 测试 firebase HTTPS 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44226124/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com