Firebase功能:在本地提供服务时无法访问firebase-admin

时间:2018-04-08 18:18:20

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

我有一个Firebase云功能,它使用Expressjs制作一些REST端点。函数使用Firestore获取或设置数据firebase-admin。当我实时部署我的功能时,它们工作正常。但是,当我尝试使用firebase serve在本地运行它们时,它们会在尝试访问firestore时崩溃。部署后该功能正常工作,我在本地提供此功能时只会遇到此问题。

这是一个超级精简函数,显示崩溃发生的位置:

  app.get('/account/:uId/persona/:pId/test', (req, res) => {
    const uid = req.params.uId;
    const pid = req.params.pId;

    admin.firestore()
      .collection('my-collection')
      .doc(uid)
      .get()
      .then((succ) => res.status(204).send("success"))
      .catch(err => res.status(500).send("failure"))
  });

它在我的功能结束时没有击中catch。终端日志说:

info: User function triggered, starting execution
info: Execution took 1404 ms, finished with status: 'crash'

响应说:

{
    "error": {
        "code": 500,
        "status": "INTERNAL",
        "message": "function crashed",
        "errors": [
            "socket hang up"
        ]
    }
}

我设置了管理员凭据,但它没有什么区别:https://firebase.google.com/docs/functions/local-emulator#set_up_admin_credentials_optional

有什么想法吗?

0 个答案:

没有答案