当我在浏览器中运行firebase函数时,出现错误:无法获取/ testingtest

时间:2019-07-05 06:37:09

标签: node.js firebase google-cloud-functions

我是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);

4 个答案:

答案 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

请参见unable to access invoke firebase http end point

答案 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/中可用。