【问题标题】:Not able to run Cloud functions locally anymore无法再在本地运行云功能
【发布时间】:2019-07-03 02:20:22
【问题描述】:

一个月后我回到我的开发环境并运行firebase serve --only functions。它给了我一些我应该更新我的包的消息。我只是按照说明进行操作,并且在开发机器上本地运行云功能被破坏:(我从头开始重新启动所有依赖项并将所有依赖项更新到最新版本。不幸的是,我遇到了一些我没有任何运气的身份验证问题: ( 我收到此错误:

Error: Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.

packages.json:

{
  "name": "functions",
  "scripts": {
    "lint": "tslint --project tsconfig.json",
    "build": "tsc",
    "serve": "npm run build && firebase serve --only functions",
    "shell": "npm run build && firebase functions:shell",
    "start": "npm run shell",
    "deploy": "firebase deploy --only functions",
    "logs": "firebase functions:log"
  },
  "engines": {
    "node": "8"
  },
  "main": "lib/index.js",
  "dependencies": {
    "firebase-admin": "^8.2.0",
    "firebase-functions": "^3.0.2",
    "firebase-tools": "^7.0.2",
    "google-gax": "^1.1.3"
  },
  "devDependencies": {
    "tslint": "^5.12.0",
    "typescript": "^3.2.2"
  },
  "private": true
}

我已将我的评论添加到related Github issue here

【问题讨论】:

  • 您评论了一个看起来完全不同的问题。我看不出您在此处显示的错误消息与最初报告的错误消息有什么关系。
  • 在删除了链接问题中提到的 application_default_credentials.json 文件后,我遇到了上述问题。早些时候,我在 GitHub 问题中报告了 invalid_grant 问题。
  • 使用--debug 运行命令时的相关输出是什么?
  • 这里是带有 --debug 标志的输出链接:gist.github.com/ptyagicodecamp/34fe4911d1c7bc37cac4525d263fc985
  • 我没有看到任何错误。您究竟是如何看待问题的?我觉得这里缺少一些信息。你究竟是如何重现这个问题的?

标签: firebase google-cloud-functions firebase-admin


【解决方案1】:

如果有人遇到类似问题。 对我来说,将使用 config() 初始化 firebase-admin 切换为手动传递 service-account-creds 通过身份验证解决了这个问题。

在获取最新更新后无法正常工作

admin.initializeApp(functions.config().firebase);

工作解决方案

var admin = require("firebase-admin");

var serviceAccount = require("firebase-adminsdk.json");

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://<project>.firebaseio.com"
});

【讨论】:

  • 比较常见的情况是不带参数初始化,除非你需要使用特定的服务账号,而不是应用默认的服务账号。您可以在示例代码和文档中看到所有内容,当前环境将提供合理的默认值:admin.initializeApp()
  • @DougStevenson:我完全同意!我确保我的默认项目已相应设置为由 firebaseConfig 选择。我仍然不确定为什么在选择默认配置时遇到问题,除非我手动执行此操作。
  • @DougStevenson 非常感谢您调试此问题。节省了我的另一天:)
猜你喜欢
  • 2019-10-06
  • 2017-08-03
  • 2020-10-02
  • 2020-12-03
  • 2019-10-30
  • 2019-11-10
  • 1970-01-01
  • 2019-11-04
  • 1970-01-01
相关资源
最近更新 更多