获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

Compartilhe recursos do projeto em vários sites

Você pode configurar um ou mais sites do Firebase Hosting em um único projeto do Firebase. Como os sites estão todos no mesmo projeto do Firebase, todos os sites podem acessar os outros recursos do Firebase do projeto.

Ao configurar vários sites do Hosting no mesmo projeto do Firebase, você pode compartilhar recursos do Firebase com mais facilidade entre sites e aplicativos relacionados. Por exemplo, se você configurar seu blog, painel de administração e aplicativo público como sites individuais no mesmo projeto do Firebase, todos poderão compartilhar o mesmo banco de dados de usuários do Firebase Authentication, além de terem seus próprios domínios ou conteúdos exclusivos.

Etapa 1 : atualizar sua versão do Firebase CLI

Acesse os recursos mais atuais do Firebase Hosting atualizando para a versão mais recente da Firebase CLI .

Etapa 2 : adicionar sites adicionais

Adicione outros sites a um projeto do Firebase usando um dos seguintes métodos:

Para cada um desses métodos, você especificará um SITE_ID que é usado para construir os subdomínios padrão provisionados pelo Firebase para o site:

  • SITE_ID .web.app
  • SITE_ID .firebaseapp.com

Como o SITE_ID é usado para esses URLs, o ID do site tem os seguintes requisitos:

  • Deve ser um rótulo de nome de host válido, o que significa que não pode conter . , _ , etc.
  • Deve ter 30 caracteres ou menos
  • Deve ser globalmente exclusivo no Firebase

Para cada site, você também pode adicionar domínios personalizados para fornecer o mesmo conteúdo e configuração a vários URLs.

Excluir um site secundário

Exclua sites indesejados de um projeto do Firebase usando um dos seguintes métodos:

Observe que você não pode excluir o site padrão, que tem o mesmo SITE_ID que o ID do projeto do Firebase.

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

Quando você tem vários sites e executa comandos de implantação da Firebase CLI, a CLI precisa de uma maneira de comunicar quais configurações devem ser implantadas em cada site. Com os destinos de implantação, você pode identificar exclusivamente um site específico com um TARGET_NAME no arquivo de configuração firebase.json firebase.json e nos comandos da Firebase CLI para teste ou implantação em seus sites.

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

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

Onde estão os parâmetros:

  • TARGET_NAME — um nome exclusivo (que você mesmo definiu) para o site do Hosting no qual você está implantando

  • RESOURCE_IDENTIFIER — o SITE_ID do site do Hosting, conforme listado em seu projeto do Firebase

Por exemplo, se você criou dois sites ( myapp-blog e myapp-app ) em seu projeto do Firebase, poderá aplicar um TARGET_NAME exclusivo ( blog e app , respectivamente) a cada site executando 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 TARGET_NAME aplicado de um site ao definir sua configuração de hospedagem em seu arquivo firebase.json .

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

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

Etapa 5 : teste localmente, visualize as alterações e implante em seus sites

Execute qualquer um dos comandos a seguir na raiz do diretório do projeto local.

Comando Descrição
firebase emulators:start --only hosting Emula o conteúdo do Hosting e a configuração do site do Hosting padrão em uma URL hospedada localmente
firebase emulators:start --only hosting: TARGET_NAME Emula o conteúdo do Hosting e a configuração do site do Hosting especificado em uma URL hospedada localmente
firebase hosting:channel:deploy \
CHANNEL_ID
Implanta o conteúdo do Hosting e a configuração do site do Hosting padrão em um URL de visualização
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
Implanta o conteúdo do Hosting e a configuração do site do Hosting especificado em um URL de visualização
firebase deploy --only hosting Implanta o conteúdo e a configuração do Hosting no canal ao vivo de todos os sites do Hosting configurados no firebase.json
firebase deploy --only hosting: TARGET_NAME Implanta o conteúdo e a configuração do Hosting no canal ao vivo do site do Hosting especificado
Comando Descrição
(não recomendado; use emulators:start )
firebase serve --only hosting
Exibe o conteúdo do Hosting e a configuração do site do Hosting padrão em uma URL hospedada localmente
(não recomendado; use emulators:start )
firebase serve --only hosting: TARGET_NAME
Exibe o conteúdo do Hosting e a configuração do site do Hosting especificado em uma URL hospedada localmente