Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

deploy: pre-flight Blaze-tier check + surface tier requirement in firebase init (avoid wasted deploys)

Abierto
#10,751 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
52/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
typescript
Área
cli, cloud

Línea de trabajo

Comienza en src/deploy/functions/prepare.ts y sigue cómo la preparación del despliegue activa las compilaciones; después inspecciona src/deploy/functions/ensure.ts y nodeBillingError en busca del fallo de Blaze existente. Compara el flujo de billing con src/extensions/checkProjectBilling.ts y src/dataconnect/provisionCloudSql.ts; luego revisa src/init/features/** para las solicitudes de funciones. Se considera terminado cuando los despliegues elegibles fallan antes de realizar trabajo de compilación y las opciones de init que requieren Blaze muestran la nota especificada.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

api: core polish
Which command?

deploy

Version info

firebase-tools 15.22.3

Platform

All (behaviour is deploy-time-only, platform-independent)

CLI/emulator log
Error: Cloud Functions deployment requires the pay-as-you-go (Blaze) billing plan. To upgrade your project, visit the following URL:
https://console.firebase.google.com/project/<PROJECT>/usage/details
Reproduction steps
  1. On a project on the free Spark plan, run firebase init functions (or add Cloud Functions, Extensions, or a Data Connect service).
  2. Write code. Run firebase deploy.
  3. Deploy proceeds through TS/JS build, packaging, artifact upload, and only then — after minutes of work — fails at cloudBuildEnabled (see src/deploy/functions/ensure.ts, nodeBillingError) with the Blaze-required error.

The same pattern exists for Extensions (src/extensions/checkProjectBilling.ts) and Data Connect / Cloud SQL provisioning (src/dataconnect/provisionCloudSql.ts calls cloudbilling.checkBillingEnabled). Each surface only detects the tier mismatch after significant work — never at firebase init time, and never up-front in firebase deploy.

Expected behavior

Two additive fixes, both cheap:

  1. Pre-flight billing check in deploy prepare phase. Before prepare.ts triggers builds, call cloudbilling.checkBillingEnabled(projectId) once. If the plan is Spark and the plan targets features known to require Blaze (Cloud Functions of any generation, Extensions, Data Connect with Cloud SQL, App Hosting), fail fast with the same Blaze error. Skips minutes of wasted CPU/network on every doomed deploy.

  2. Tier badge in firebase init. When the user picks a feature that requires Blaze, print an inline note (requires the Blaze billing plan) next to the choice — the same wording nodeBillingError produces at deploy time. Right now the tier requirement is invisible until first deploy fails.

Both changes reuse existing helpers (cloudbilling.checkBillingEnabled, nodeBillingError) — no new API surface, no new dependencies. Feature-to-tier mapping already implicit in the code; just needs to be surfaced.

Files: src/deploy/functions/prepare.ts, src/deploy/functions/ensure.ts, src/init/features/** (per-feature init prompts), src/gcp/cloudbilling.ts (helper, no change).

Lenguaje dominante
TypeScript
Estrellas
4.5k
Forks
1.3k
Merge medio
2 d 22 h
PR fusionados (30 d)
83

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de firebase/firebase-tools

Todos los issues de firebase/firebase-tools

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.