Esta página fornece respostas para perguntas frequentes sobre o App Hosting.
App Hosting Perguntas frequentes
Limitações gerais e solução de problemas do App Hosting
- Devido a um problema na infraestrutura do Cloud Run,
a criação ou atualização de recursos pode ser mais lenta do que
o esperado em algumas regiões, como
us-central1. Se a latência de implantação for um problema em uma região específica, o Google recomenda implantar em outra região. - A CDN do App Hosting só pode incluir um conjunto específico de cabeçalhos da solicitação nas chaves de cache. Essa lista inclui os cabeçalhos
RSC,Next-Router-State-Tree,Next-Router-Prefetch,Next-Router-Segment-PrefetcheNext-Urldo NextJS, bem como os cabeçalhos padrãoAccept,Accept-Encoding,Access-Control-Request-Headers,Access-Control-Request-Method,Origin,Sec-Fetch-Dest,Sec-Fetch-Mode,Sec-Fetch-Site,X-Goog-Allowed-ResourceseX-Origindo Cloud CDN. Se uma resposta tiver um cabeçalhoVarycom um valor não listado aqui, nossa CDN não vai armazená-la em cache. - Os arquivos estáticos não armazenados em cache são disponibilizados em Cloud Run. Em uma versão posterior, eles serão armazenados e disponibilizados na origem App Hosting para melhorar o desempenho.
- O console do Firebase pode mostrar de forma intermitente um erro "build não encontrado e inválido" na criação do back-end.
- Todos os back-ends no mesmo projeto compartilham uma organização/conta do GitHub. Eles podem ser conectados a diferentes repositórios nessa organização/conta. Para criar back-ends conectados a contas diferentes do GitHub, coloque-os em projetos separados.
Limitações e solução de problemas de apps do Angular
Embora o suporte do App Hosting para Angular esteja em desenvolvimento ativo e em expansão, ele tem as seguintes limitações:
- I18n: embora a funcionalidade principal de I18n funcione, a navegação direta para páginas SSR pode resultar em erros.
- Localização: não é possível criar versões para diferentes localidades.
- Builders: no momento, apenas o Application Builder é compatível.
- Ambientes e ferramentas de monorepo: os projetos do Angular que têm mais de um destino de aplicativo vão falhar. Para um suporte mais completo a monorepos, use o Nx.
Erros HTTP 400 e confiança de proxy no SSR do Angular
Se o aplicativo Angular implantado no Firebase App Hosting encontrar erros HTTP 400 (solicitação inválida), bloqueadores de validação de host ou falhas de confiança de proxy, siga a solução recomendada para sua versão do Angular:
- Angular v19, v20 e v21: há duas maneiras de resolver esses erros HTTP 400:
- Fazer upgrade das dependências: execute
npm update @angular/core @angular/ssrpara instalar a versão de patch mais recente da sua versão atual do Angular. - Configuração manual: aplique um substituto de configuração no nível do código
definindo
trustProxyHeaders: truena configuração do servidor (consulte Como configurar cabeçalhos de proxy confiáveis na documentação do Angular).
- Fazer upgrade das dependências: execute
- Angular v22: o primeiro build em um novo back-end pode retornar erros 400. Para resolver o problema, gere um segundo build. Todas as versões seguintes vão funcionar como esperado.
Limitações e solução de problemas do Next.js
- Por padrão, a otimização de imagem integrada do NextJS está desativada no App
Hosting, a menos que você defina explicitamente
images.unoptimizedcomo falso ou use um carregador de imagens personalizado. Consulte Otimizar o carregamento de imagens no Next.js. - Por padrão, o Next.js grava páginas e dados em cache no sistema de arquivos, o que
conta para a memória de cada instância de exibição no App Hosting. Se
as instâncias forem reiniciadas com erros
Memory limit exceeded, consulte Configurar o armazenamento em cache do servidor no Next.js. - Atualmente, o App Hosting limita o armazenamento em cache para apps NextJS usando middleware. Com o tempo, as taxas de ocorrência em cache devem melhorar.
- Os caminhos de URL que contêm caracteres codificados por porcentagem são decodificados por Cloud Run. Isso pode causar problemas com recursos que esperam apenas caminhos de URL codificados, como roteamento paralelo do Next.js.