在nodejs的Firebase函数中使用google cloud Vision Api时发生PermissionError

在nodejs的Firebase函数中使用google cloud Vision Api时发生PermissionError,firebase,google-cloud-platform,google-cloud-functions,google-vision,Firebase,Google Cloud Platform,Google Cloud Functions,Google Vision,我有一个firebase函数,我试图在我的firebase函数中使用Vision API,但当在本地提供服务时,我遇到了这个错误 权限被拒绝:Cloud Vision API以前未在项目563584335869中使用,或已被禁用。 通过访问启用它,然后重试。如果您最近启用了此API 首先,我不知道563584335869来自哪里,因为当我点击链接时,它不是一个有效的项目 其次,我选择了项目并在其上启用了Vision API,但仍然得到相同的错误 代码非常简单,无论如何,我在这里添加了它 异步分

我有一个firebase函数,我试图在我的firebase函数中使用Vision API,但当在本地提供服务时,我遇到了这个错误

权限被拒绝:Cloud Vision API以前未在项目563584335869中使用,或已被禁用。 通过访问启用它,然后重试。如果您最近启用了此API

首先,我不知道
563584335869
来自哪里,因为当我点击链接时,它不是一个有效的项目

其次,我选择了项目并在其上启用了Vision API,但仍然得到相同的错误

代码非常简单,无论如何,我在这里添加了它

异步分析(imageStorageLocation:string):承诺

更新 我找到了我的项目的projectId,它与错误消息中的id不同

更新 我检查了我所有其他项目的id,该编号与任何项目都不匹配

更新
这个问题只发生在我的本地服务器上,当部署到firebase时,它可以工作

谢谢@Chris32,我在评论中根据他的线索找到了解决方案

因为这个问题只发生在我的本地服务器上,部署时还可以,所以我这样做是为了解决这个问题()

  • 已导出服务密钥文件
  • 创建名为
    GOOGLE\u APPLICATION\u CREDENTIALS的环境变量(win 10)
  • 将服务密钥文件的路径设置为此env变量
  • 在本地运行函数
  • p、
    令人惊讶的是,Chris在错误中提到项目id是硬编码的,因此会产生误导性

    Hello,12位数字就是项目编号。如果您转到项目信息中的主仪表板,您将看到您的项目编号。关于cloud vision api问题,请在启用api和retry@Chris32错误中的项目id与实际项目id不同,只是要知道我们将要启动。您是否遵循了此操作?您收到的此错误很可能是因为在部署时您的代码中没有key.json文件,但我想确认您之前是否检查过此错误。您可以忘记错误中显示的项目编号,因为在错误消息中似乎是一个“harcoded”编号
      "dependencies": {
        "@google-cloud/vision": "^1.7.1",
        "@nestjs/common": "^6.0.0",
        "@nestjs/core": "^6.0.0",
        "@nestjs/platform-express": "^6.9.0",
        "express": "^4.17.1",
        "firebase-admin": "^8.7.0",
        "firebase-functions": "^3.3.0",
        "moment-timezone": "^0.5.27",
        "reflect-metadata": "^0.1.12",
        "rimraf": "^2.6.2",
        "rxjs": "^6.3.3"
      },