400 未找到项目的计费帐户。必须启用计费才能激活服务

Posted

技术标签:

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

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

在我跑步时:

firebase deploy

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

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

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

【问题讨论】:

看起来像you'll have to buy a license @digijay 但在本教程中,作者没有这么说,下面的回应是肯定的。 根据链接中的说法,它是免费的,直到 2020 年 8 月。教程是从 2018 年开始的。 【参考方案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 答案。

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

    为您的项目启用Billing 启用Cloud Build API 启用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 现在需要一个有效的结算帐户。即使您预计不会超过免费限额,您也需要添加一个。

另见:

Is Function Cloud in Firebase Free or Not (Cloud Functions deployment requires the pay-as-you-go (Blaze) billing plan)

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

【讨论】:

【参考方案4】:

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

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

"engines": 
"node": "8"
  

    firebase 部署

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

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

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

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

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

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】:
    转到 Firebase 控制台 转到使用情况和帐单 将计划从免费更改为随用随付

【讨论】:

【参考方案9】:

我也遇到了错误!

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

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

firebase deploy

它有效!

【讨论】:

以上是关于400 未找到项目的计费帐户。必须启用计费才能激活服务的主要内容,如果未能解决你的问题,请参考以下文章

在商家帐户上启用“TMS 定期计费解决方案”是不是会阻止 SOAP API 工作?

BigQuery - 为我的帐户上未运行的查询计费

自动定期计费系统付费会员专业版 wordpress 插件

Google Cloud Storage 存储桶抛出错误“要计费的项目与已关闭的计费帐户相关联。”

定期付款或特殊类别。关于计费的问题[关闭]

Google Cloud Platform 免费试用计费