转到控制台

在多个网站中共享项目资源

您可以在单个 Firebase 项目中设置一个或多个 Firebase 托管网站。由于这些网站全都在同一个 Firebase 项目中,因此所有网站都可以访问该项目的其他 Firebase 资源。

  • 每个网站都具有各自的托管配置
  • 每个网站都有各自特有的一系列内容。
  • 每个网站都可以拥有一个或多个关联的网域

通过在同一个 Firebase 项目中设置多个托管网站,您可以更轻松地在相关网站和应用之间共享 Firebase 资源。例如,如果您将博客、管理面板和公开应用设置为同一 Firebase 项目中的各个网站,则它们可以在共享同一个 Firebase 身份验证用户数据库的同时,拥有自己的独特网域或内容。

第 1 步:更新 Firebase CLI 版本

确保您拥有最新的 Firebase 托管功能。在您的终端中运行以下命令来升级到最新的 Firebase CLI 版本:

npm install -g firebase-tools

第 2 步:添加其他网站

您可以直接在 Firebase 托管页中向 Firebase 项目添加其他网站。对于每个网站,您还可以视需要添加自定义域名,以便向多个网址提供相同的内容和配置。

删除辅助网站

您可以直接从 Firebase 托管页中删除不需要的网站。请注意,您无法删除与您的 Firebase 项目 ID 同名的默认网站。

第 3 步:为您的网站设置部署目标

当您有多个网站并运行 Firebase CLI 部署命令时,CLI 需要通过某种方式传达应向每个网站部署哪些设置。使用部署目标,您可以在 firebase.json 配置文件Firebase CLI 命令中按照目标名称唯一标识某个特定网站,以便对该网站进行测试或部署。

要创建部署目标并将目标名称应用到托管网站,请从项目目录的根目录下运行以下 CLI 命令:

firebase target:apply hosting target-name resource-name

其中的参数是:

  • target-name -(您自己定义的)要部署到的目标托管网站的唯一标识符

  • resource-name - 您的 Firebase 项目中列出的托管网站的名称

例如,如果您在 Firebase 项目中创建了两个网站(myapp-blogmyapp-app),则可以通过运行以下命令对每个网站(分别为 blogapp)应用唯一的目标名称

firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app

部署目标的设置存储在项目目录下的 .firebaserc 文件中,以便您一次只需为一个项目设置部署目标。

第 4 步:为每个网站定义托管配置

firebase.json 文件中为某个网站定义托管配置时,请使用该网站已应用的目标名称

  • 如果您的 firebase.json 文件为多个网站定义了该配置,请使用下列数组格式:

    {
      "hosting": [ {
          "target": "blog",  // "blog" is the applied target name for the Hosting site "myapp-blog"
          "public": "blog/dist",  // contents of this folder are deployed to the site "myapp-blog"
    
          // ...
        },
        {
          "target": "app",  // "app" is the applied target name for the Hosting site "myapp-app"
          "public": "app/dist",  // contents of this folder are deployed to the site "myapp-app"
    
          // ...
    
          "rewrites": [...]  // You can define specific Hosting configurations for each site
        }
      ]
    }
    
  • 如果您的 firebase.json 文件仅为一个网站定义了该配置,则无需使用数组格式:

    {
      "hosting": {
          "target": "blog",
          "public": "dist",
    
          // ...
    
          "rewrites": [...]
      }
    }
    

第 5 步:部署到您的网站或在本地提供

从您的项目目录的根目录下运行以下任一命令。

命令 说明
firebase deploy 为项目目录中所有可部署的资源创建版本
firebase deploy --only hosting:target-name 仅为所指定的托管目标的资源创建版本
firebase serve 在本地提供您的 Firebase 项目
firebase serve --only hosting:target-name 仅在本地为所指定的托管目标提供资源