Compartilhar recursos do projeto em vários sites

Você pode 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

Acesse os recursos mais recentes do Firebase Hosting ao atualizar para a versão mais recente da Firebase CLI.

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 exibir 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 ID 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. A opção destinos de implantação permite identificar um site específico pelo nome do destino no firebase.json arquivo de configuração e nos comandos da Firebase CLI para teste ou implantação nos seus sites.

Para criar um destino de implantação e aplicar um nome de destino a um site do Hosting, execute o seguinte comando da CLI usando a 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 exclusivo (definido por você) para o site do Hosting em que as implantações serão realizadas

  • 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 nome do destino em cada site (blog e app, respectivamente). Basta executar os seguintes comandos:

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

As configurações dos destinos de implantação são armazenadas no arquivo .firebaserc no diretório do projeto. Portanto, 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 nome de destino aplicado na hora de definir a configuração de hospedagem no arquivo firebase.json.

  • Se o arquivo firebase.json definir a configuração de vários 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 de 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 a partir 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 versã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