【发布时间】:2020-01-01 21:49:24
【问题描述】:
设置 Firestore 函数。https.onRequest,在我的前端错误中调用它请求的资源上不存在“Access-Control-Allow-Origin”标头。
尝试了很多其他答案,但无法使其正常工作。如何为谷歌云功能正确设置 cors?
在过去的 3 个小时里,我在 stackoverflow 上尝试了大部分答案。
通过 gsutil 将 cors 标头添加到存储桶(来自此答案 https://stackoverflow.com/a/37765371/7151828),?不过不知道是不是别的原因……
我试着像这个函数示例那样做:https://github.com/firebase/functions-samples/blob/master/quickstarts/time-server/functions/index.js
这是我使用 cors 中间件的尝试
const functions = require('firebase-functions');
const cors = require('cors')({
origin: true
});
const admin = require('firebase-admin');
admin.initializeApp();
exports.exampleFunction = functions.https.onRequest(async (req, res) => {
return cors(req, res, () => {
// Forbidding PUT requests.
if (req.method === 'PUT') {
return res.status(403).send('Forbidden!');
}
//respond to CORS preflight requests
if (req.method == 'OPTIONS') {
res.status(204).send('');
return null
}
// code ...
res.sendStatus(200);
}
我不知道我做错了什么。
我在这里做错了什么?
【问题讨论】:
-
我很困惑——您说您正在尝试在云函数上设置 CORS,但您引用的是存储桶和云存储 URL。它是哪一个?使用 cors middleware 对我有用,应该也可以为你工作,只需阅读如何配置它。
-
我也很困惑。所以我认为CloudStorageBucket中引用了Cloud Function(因为有一个与我的firebase项目同名的项目)。将再次尝试在云功能中使用 cors 中间件。谢谢!请查看我更新的问题,我现在正在使用示例函数中的 cors 中间件,但仍然出现错误。
标签: firebase google-cloud-platform cors google-cloud-functions