我是firebase函数的新手,我需要帮助,当我运行该函数时出现错误:Cannot GET /testingtest
,有人可以告诉我为什么我遇到此错误,在这里我添加了完整的代码< / p>
const express = require('express');
const app = express();
const cors = require('cors');
app.use(cors({ origin: true }));
app.get('/widgets/testingtest', (req, res) => {
res.send({ 'status': 0});
});
exports.widgets = functions.https.onRequest(app);
答案 0 :(得分:0)
Firebase函数需要在本地进行仿真以进行测试。 请为此查看Firebase上的文档:
https://firebase.google.com/docs/functions/local-emulator
安装firebase cli:
npm install -g firebase-tools
由于您当前正在示例中测试https函数,因此这些命令将起作用:
firebase emulators:start --only functions
,您将看到可以从浏览器或邮递员等调用的每个https函数的网址。
答案 1 :(得分:0)
根据错误消息,您似乎正在尝试访问/testingtest
,但是在代码中,请尝试:
app.get('/testingtest', (req, res) => {
res.send({ 'status': 0});
});
答案 2 :(得分:0)
const express = require('express');
const app = express();
const cors = require('cors');
app.use(cors({ origin: true }));
app.get('/testingtest', (req, res) => {
res.send({ 'status': 0});
});
exports.widgets = functions.https.onRequest(app);
获取URL为/widgets/testingtest
。不是/testingtest
。
答案 3 :(得分:0)
对于最近来这里的用户来说,如果您使用firebase emulators:start
创建Firebase函数,则firebase init
是默认的启动方式。
Cannot /GET /*
的原因可能是firebase导出api的方式。
创建api后,
app.get('/widgets/testingtest', (req, res) => {
res.send({ 'status': 0});
});
当导出为exports.widgets = functions.https.onRequest(app);
时
当firebase导出widgets/widgets/testingtest
((widgets
)上的api时,实际的api变成export.widgets
。
您可以从此处删除多余的widgets
:
app.get('/widgets/testingtest', (req, res) => {
res.send({ 'status': 0});
});
然后变为:
app.get('/testingtest', (req, res) => {
res.send({ 'status': 0});
});
它将在widgets/testingtest/
中可用。