Ir para o console

Compartilhar recursos do projeto em vários sites

É possível configurar um ou mais sites do Firebase Hosting em um único projeto do Firebase. Como todos os sites estão no mesmo projeto, eles podem acessar os outros recursos do Firebase do projeto.

Ao definir vários sites do Hosting no mesmo projeto do Firebase, você facilita o compartilhamento dos recursos do Firebase entre sites e aplicativos relacionados. Por exemplo, se você configurar seu blog, painel de administração e app público como sites individuais no mesmo projeto do Firebase, todos eles poderão compartilhar o mesmo banco de dados de usuários do Firebase Authentication, além de ter os próprios domínios ou conteúdo.

Etapa 1: atualizar sua versão da Firebase CLI

Verifique se você tem os recursos mais atuais do Firebase Hosting. Atualize para a versão mais recente da Firebase CLI executando o seguinte comando no seu terminal:

npm install -g firebase-tools

Etapa 2: adicionar outros sites

Adicione outros sites a um projeto do Firebase diretamente da página do Firebase Hosting. Para cada site, você também pode adicionar domínios personalizados para veicular o mesmo conteúdo e configuração em vários URLs.

Excluir um site secundário

Exclua sites indesejados diretamente da página do Firebase Hosting. Não é possível excluir o site padrão, que tem o mesmo nome do código do projeto do Firebase.

Etapa 3: configurar destinos de implantação para seus sites

Quando você tem vários sites e executa os comandos de implantação da Firebase CLI, a interface da linha de comando precisa saber como informar quais configurações precisam ser implantadas em cada site. Com os destinos de implantação, é possível identificar de maneira exclusiva um site específico pelo target name no arquivo de configuração do firebase.json e nos comandos da Firebase CLI para testar ou implantar nos sites.

Para criar um destino de implantação e aplicar um target name a um site do Hosting, execute o seguinte comando da CLI a partir da raiz do diretório do seu projeto:

firebase target:apply hosting target-name resource-name

Em que os parâmetros são:

  • target-name: um identificador único (definido por você) para o site do Hosting em que as configurações serão implantadas

  • resource-name: o nome do site do Hosting conforme listado no seu projeto do Firebase

Por exemplo, se você criou dois sites (myapp-blog e myapp-app) no seu projeto do Firebase, será possível aplicar um target name único a cada site (blog e app, respectivamente) ao executar os comandos a seguir:

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

As configurações para os destinos de implantação são armazenadas no arquivo .firebaserc no diretório do projeto. Dessa forma, você só precisa configurar os destinos de implantação uma vez por projeto.

Etapa 4: definir a configuração de hospedagem para cada site

Use o target name aplicado de um site ao definir a configuração de hospedagem no arquivo firebase.json.

  • Se o arquivo firebase.json definir a configuração para vários outros sites, use um formato de matriz:

    {
      "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
        }
      ]
    }
    
  • Se o arquivo firebase.json definir a configuração para apenas um site, não será necessário usar um formato de matriz:

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

Etapa 5: implantar nos seus sites ou disponibilizar localmente

Execute qualquer um dos comandos a seguir da raiz do diretório do seu projeto.

Comando Descrição
firebase deploy Cria uma versão de todos os recursos implantáveis no diretório do seu projeto
firebase deploy --only hosting:target-name Cria uma liberação apenas dos recursos para o destino especificado do Hosting
firebase serve Disponibiliza seu projeto do Firebase localmente
firebase serve --only hosting:target-name Disponibiliza localmente apenas os recursos para o destino especificado do Hosting