【发布时间】: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