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 产品:hosting
、database
、storage
、firestore
、functions
【参考方案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 工作?