【问题标题】:400 Billing account for project is not found. Billing must be enabled for activation of service(s)400 未找到项目的计费帐户。必须启用计费才能激活服务
【发布时间】:2021-01-04 00:41:07
【问题描述】:

我正在通过 this tutorial here 使用 firebase 创建 API。

在我跑步时:

firebase deploy

我在命令行上收到此错误:

HTTP 错误:400,找不到项目“381106441303”的结算帐户。必须启用计费才能激活服务“cloudbuild.googleapis.com,containerregistry.googleapis.com”才能继续。

请告诉我如何解决这个问题!

【问题讨论】:

  • @digijay 但在本教程中,作者没有这么说,下面的回应是肯定的。
  • 根据链接中的说法,它是免费的,直到 2020 年 8 月。教程是从 2018 年开始的。

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


【解决方案1】:

如果你只是想完成一个教程,只需在 package.json

中将 Node version 从 10 更改为 8
"engines": {
  "node": "8"
}

这现在可以使用,但最终在 2021 年 2 月 15 日之后,将不再允许部署 Node.js 8 功能。因此,如果您想在此日期之后使用云功能,则必须使用 Blaze 即用即付计费方案。

【讨论】:

  • Firebase 会在部署后提及任何方法,并将其视为“已弃用”。感谢您提供详细信息并暂时解决问题!
  • 就像备注一样,如果您在本地机器上使用不同的节点版本,它也会拒绝部署。因此,如果它拒绝它,请仅在部署时切换到节点版本 8,就可以了。
  • 错误:functions.runtime 值不受支持。有效的选择是:nodejs10、nodejs12 和 nodejs14。
【解决方案2】:

如果您只是想测试或遵循教程,请参阅this 答案。

如果您想在实际项目中使用,请按照以下步骤操作:

  1. 为您的项目启用Billing
  2. 启用Cloud Build API
  3. 启用Container Registry API

来自 Firebase 常见问题解答:

从 2020 年 8 月 17 日的更新开始,Cloud Functions for Firebase 将依赖一些额外的付费 Google 服务,因此您必须添加账单,启用 Container Registry API 和 Cloud Storage API 才能使用它。

查看更多:Cloud Functions pricing

编辑:执行这些步骤后,您的项目计划会自动升级到 Blaze-Pay。 - 感谢@Abhimanyu

【讨论】:

  • 很好的答案。我很困惑,因为我应该能够在不升级到 firebase 上的付费“Blaze”计划的情况下部署功能。我只需要通过上面的 GCP 计费界面为我的“spark”项目启用计费。我的演示项目无需去 Blaze。
  • 注意:执行这些步骤会自动将您的项目计划升级到 Blaze-Pay as you go。
  • 这是新版本的 firebase sdk(自 9.0.0 版 - 2020 年 7 月 14 日起)不再支持 node.js 8 运行时的方式。您甚至无法将新项目推送到云端。你可以尝试降级到旧版本但不习惯,它计划在2021年初撤出。
  • 正确的做法。
  • 令人惊讶...只有 Albert 的链接有效...当我尝试手动添加 API 时...我收到服务器错误。回到这里并复制/粘贴上面的链接......它完美无缺。
【解决方案3】:

您所遵循的教程已经很老了。 Cloud Functions 现在需要一个有效的结算帐户。即使您预计不会超过免费限额,您也需要添加一个。

另见:

考虑联系该文章的作者,告诉他们应该更新文章以使其更准确。

【讨论】:

    【解决方案4】:

    它对我来说很好,你不必付费我正在使用 firebase 免费层

    package.json上的第一次降级节点版本从 10 到 8

    "engines": {
    "node": "8"
      }
    
    1. firebase 部署

    2. 您将在上方看到 + Deploy complete! 消息

      +函数[helloWorld(us-central1)]:更新操作成功。

    3. 这个 us-central我的项目托管区域,在您的情况下可能会有所不同

      此区域的前缀 [helloWorld 是我导出的函数名称,您的情况可能 不同的是,通过 firebase deploy 命令从您的终端获取此信息

    4. 之后您的托管项目链接将是

    https://yourregion-firebaseprojectname.cloudfunctions.net/yourexportedfunctionname 
    

    (导出的函数名)即helloWorld

    【讨论】:

    • 错误:functions.runtime 值不受支持。有效的选择是:nodejs10、nodejs12 和 nodejs14。
    【解决方案5】:

    您可以将节点版本从 10 降低到 8,但您应该将您的计划升级到“Blaze”,因为它有完整的免费计划,只有在通过时才会向您收费免费计划

    【讨论】:

      【解决方案6】:

      你可以试试这个:

      firebase deploy --only hosting
      

      Full docs

      【讨论】:

      • 谢谢!很高兴知道您可以使用 --only 开关指定任何 Firebase 产品:hostingdatabasestoragefirestorefunctions
      【解决方案7】:

      这是一个调度程序的例子,但这在免费帐户中不起作用。必须启用计费才能激活服务“cloudscheduler.googleapis.com”才能继续。

      import * as functions from 'firebase-functions';
      import {db, notificationSentEvent, deviceData} from './init';
      
      export const dailyDelete = functions.pubsub.schedule( '10 1 * * *' ).onRun(context => {
          console.log('At 01:10');
      })
      

      【讨论】:

        【解决方案8】:
        1. 转到 Firebase 控制台
        2. 转到使用情况和帐单
        3. 将计划从免费更改为随用随付

        【讨论】:

          【解决方案9】:

          我也遇到了错误!

          修复错误的方法是:转到https://console.firebase.google.com/project/your_firebase_project/usage/details 网站,然后按照屏幕上的说明进行操作。

          然后在Linux终端上运行Linux主目录下的命令:

          firebase deploy
          

          它有效!

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2013-04-16
            • 2021-12-09
            • 1970-01-01
            • 2021-12-01
            • 2015-08-26
            • 1970-01-01
            • 2020-12-16
            相关资源
            最近更新 更多