【问题标题】:Firebase Functions corsFirebase 函数
【发布时间】:2017-09-10 19:23:21
【问题描述】:

我正在使用 Firebase 函数,并且在使用 Ionic Native HTTP 插件 (https://ionicframework.com/docs/native/http/) 时一切正常。 今天,我决定转向 Angular-Http 实现,因为那时我也可以在浏览器中测试我的代码。

我面临的问题是,由于我放弃了原生方法并使用 Angular 方式处理 Http,我收到与 CORS 相关的错误:

请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:8100' 不允许访问。响应的 HTTP 状态代码为 500。

在服务器端,我关注https://github.com/firebase/functions-samples/tree/master/authorized-https-endpoint,这工作正常,直到我使用 Angular 进行 HTTP。

我在服务器上的代码如下:

const admin = require('firebase-admin');
const cors = require('cors')({origin: true});
admin.initializeApp(functions.config().firebase);

const router = new express.Router();
router.use(cors);
router.use(validateFirebaseIdToken);
router.post('/', (req, res) => {
  console.log("Proccess myFunction");
  ...
}
exports.myFunction = functions.https.onRequest(router); 

在 firebase 控制台中,我得到以下日志:

3:41:28.429 纳赫姆。警告 myFunction TypeError:无法立即读取未定义的属性“应用”。 (/user_code/node_modules/express/lib/router/index.js:635:14) at runCallback (timers.js:639:20) at tryOnImmediate (timers.js:610:5) at processImmediate [as _immediateCallback] (timers .js:582:5)

3:41:28.428 纳赫姆。警告 myFunction 未捕获的异常

3:41:28.424 纳赫姆。 info myFunction 进程 myFunction

所以看起来,我的函数正在被调用并且日志出现,但是连接在两者之间的某个地方丢失了。如前所述,在我使用 Angular Http 之前一切正常。根据我的附加日志条目,当我尝试访问 Firebase 存储时,崩溃发生在某个地方(但由于它之前工作过,我很确定,对存储的访问很好)。

编辑: 正文中的值似乎也未定义。

console.log("ID "+req.body.userID);

打印:

“ID 未定义”

【问题讨论】:

    标签: angularjs firebase ionic-framework google-cloud-functions


    【解决方案1】:

    好的,我找到了问题。 在请求方,我不得不使用“application/json”作为 Content-Type。不知道为什么这会引发一个 cors 错误,以及为什么它以前会这样工作。

    【讨论】:

    • 你是怎么做到的?你使用AngularFireFunctions 中的httpsCallable 吗?你能举个例子吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-23
    • 2021-04-21
    • 2018-07-20
    • 2021-09-17
    • 1970-01-01
    • 2018-12-20
    相关资源
    最近更新 更多