为什么Firebase请求在Firebase服务上不起作用?

时间:2019-09-14 15:01:58

标签: firebase google-cloud-functions postman

每当我尝试使用Firebase服务发出请求时,它都会失败。当我Firebase部署我的功能然后发出请求时,一切正常运行,但是通过Firebase服务在本地运行相同的功能不起作用。我正在使用邮递员发出请求。

我的步骤:我使用功能在文件夹中的cmd中运行firebase serve。然后,我将得到响应的链接复制并粘贴到Postman,然后使用该链接运行请求,例如http://localhost:5000/workers-7baca/us-central1/api/workers。邮递员没有给我任何回应,我在控制台中遇到错误。

我的函数的代码:

app.get("/workers", (req, res) => {
  admin
    .firestore()
    .collection("workers")
    .get()
    .then(data => {
      res.json(data);
    })
    .catch(err => console.error(err));
});

当我从部署链接请求时,相同的代码对我有用,但在本地主机上不起作用。

我收到类似FetchError: Unexpected error determining execution environment: network timeout的网络超时错误。

出什么问题了?

编辑:我在https://github.com/firebase/firebase-tools/issues/344那里找到了一个可行的解决方案

2 个答案:

答案 0 :(得分:0)

  1. 转到https://cloud.google.com/console/iam-admin/serviceaccounts
  2. 点击“创建服务帐户”,为其命名(例如仿真器),并为其指定Project> Owner角色。选中“提供新的私钥”,然后选择“ JSON”。
  3. 将文件保存在计算机上的某个地方
  4. 运行 导出GOOGLE_APPLICATION_CREDENTIALS =“绝对/路径/到/file.json”
  5. 运行 firebase提供--only功能

答案 1 :(得分:0)

安装Firebase模拟器

firebase emulators:start

并使用生成的本地服务器连接数据库