Node.js Google Cloud函数与Nodejs运行时不适用于CORS和async

Node.js Google Cloud函数与Nodejs运行时不适用于CORS和async,node.js,google-cloud-functions,Node.js,Google Cloud Functions,嗨,我遇到了一个情况,我需要从firestore in cloud函数中获取数据。 但是由于CORS问题,UI被阻塞,因此我在Nodejs中添加了CORS依赖项。 当我需要从firestore获取数据时,我需要等待功能,但这在cors中是不可能的。因此,这里需要的解决方案是代码块 const cors = require('cors')({ origin: true }); const Firestore = require('@google-cloud/firestore'); const P

嗨,我遇到了一个情况,我需要从firestore in cloud函数中获取数据。 但是由于CORS问题,UI被阻塞,因此我在Nodejs中添加了CORS依赖项。 当我需要从firestore获取数据时,我需要等待功能,但这在cors中是不可能的。因此,这里需要的解决方案是代码块

const cors = require('cors')({ origin: true });
const Firestore = require('@google-cloud/firestore');
const PROJECTID = 'something';
const COLLECTION_NAME = 'ui_data';
const firestore = new Firestore({
  projectId: PROJECTID,
  timestampsInSnapshots: true,
});
exports.helloWorld = async function index(req, res) {
    cors(req, res, () => {
       const data = [];
       const querySnapshot = await firestore.collection(COLLECTION_NAME).get();
       querySnapshot.forEach(doc => {
          data.push(doc.data());
       });
     return res.status(200).send(data);
    });
}

提前感谢

您不能使用异步到外部函数

exports.helloWorld = function index(req, res) {
    cors(req, res, async () => {
       const data = [];
       const querySnapshot = await firestore.collection(COLLECTION_NAME).get();
       querySnapshot.forEach(doc => {
          data.push(doc.data());
       });
     return res.status(200).send(data);
    });
}

这不是一个云函数,首先。。。至少不能被识别。请发布完整的导入代码。@Ashish请查找已编辑的code@MartinZeitler请查找编辑后的代码。错误的功能是错误的,并且您没有提供要发送数据的域的白名单。如果您在邮递员中接收数据,那么它工作正常