You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ng add @angular/fire时Firebase Hosting选项不显示求助

Angular Fire添加时Hosting选项缺失的解决方案

问题分析

Angular Fire 17.x版本的ng add @angular/fire命令默认不再包含Hosting的交互式选项,这是因为Hosting的集成逻辑更偏向部署配置而非代码层面的初始化,CLI因此调整了引导流程,并非功能被移除。

无需firebase-tools的手动配置步骤

1. 确认依赖完整性

确保Hosting相关依赖已安装(若之前执行过ng add @angular/fire,此步骤可跳过):

npm install @angular/fire firebase

2. 配置Hosting模块

在Angular 17+的app.config.ts中添加Hosting服务配置:

import { provideFirebaseApp, initializeApp } from '@angular/fire/app';
import { provideHosting, getHosting } from '@angular/fire/hosting';
import { ApplicationConfig } from '@angular/core';

// 替换为你的Firebase控制台配置
const firebaseConfig = {
  apiKey: "YOUR_API_KEY",
  authDomain: "YOUR_AUTH_DOMAIN",
  projectId: "YOUR_PROJECT_ID",
  storageBucket: "YOUR_STORAGE_BUCKET",
  messagingSenderId: "YOUR_MESSAGING_SENDER_ID",
  appId: "YOUR_APP_ID"
};

export const appConfig: ApplicationConfig = {
  providers: [
    provideFirebaseApp(() => initializeApp(firebaseConfig)),
    // 保留已添加的Authentication、Firestore等服务配置
    provideHosting(() => getHosting()),
  ]
};

3. 创建Hosting配置文件

在项目根目录手动创建两个配置文件:

  • .firebaserc(关联Firebase项目):
{
  "projects": {
    "default": "你的Firebase项目ID"
  }
}
  • firebase.json(Hosting部署规则):
{
  "hosting": {
    "public": "dist/你的Angular项目名/browser",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}

注意替换你的Angular项目名和你的Firebase项目ID为实际值。

4. 验证集成有效性

在任意组件中注入Hosting服务,验证配置是否生效:

import { Component, inject, OnInit } from '@angular/core';
import { Hosting } from '@angular/fire/hosting';

@Component({
  selector: 'app-root',
  template: '<h1>Hosting集成测试</h1>'
})
export class AppComponent implements OnInit {
  private hosting = inject(Hosting);

  ngOnInit() {
    console.log('Hosting服务已初始化:', this.hosting);
  }
}

补充说明

Angular Fire 17.x并未移除Hosting功能,只是调整了ng add的引导逻辑。手动配置后,可正常使用Hosting的所有API,后续部署若需跳过firebase-tools,可通过Angular构建产物直接上传至Firebase控制台的Hosting页面完成发布。

内容的提问来源于stack exchange,提问作者Ramon Rossini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 11:04:55