URLs reservados

Os URLs são reservados pelo Firebase Hosting no seu site começando com /__. Esse namespace reservado facilita o uso de outros recursos do Firebase com o Firebase Hosting. Esses URLs reservados estão disponíveis quando implantados e durante a execução de firebase serve localmente.

SDK do Firebase

Como o Firebase Hosting é veiculado pelo HTTP/2 quando implantado, é possível melhorar o desempenho com o carregamento de arquivos da mesma origem. Todas as versões do SDK JS do Firebase são veiculadas pelo Firebase Hosting a partir de URLs especiais formatados como a seguir:

/__/firebase/{version}/{sdk-file}.js

Recomendamos carregar somente as partes do SDK utilizadas. Por exemplo, se você estiver usando o Firebase Authentication e o Cloud Storage juntos, precisará incluir apenas os seguintes scripts:

<script src="/__/firebase/5.4.1/firebase-app.js"></script>
<script src="/__/firebase/5.4.1/firebase-auth.js"></script>
<script src="/__/firebase/5.4.1/firebase-storage.js"></script>

Todas as versões do SDK do Firebase são hospedadas desta maneira e as novas versões ficam disponíveis assim que lançadas.

Configuração automática do SDK

Além da hospedagem dos próprios SDKs, o namespace reservado também oferece toda a configuração necessária para inicializar o SDK para o projeto associado ao site do Firebase Hosting. Ela é fornecida como um script que pode ser incluído diretamente:

<!-- load Firebase SDK before loading this file -->
<script src="/__/firebase/init.js"></script>

O script configurará automaticamente o aplicativo padrão do SDK do Firebase. Se você preferir controlar a inicialização, os valores de configuração também estão disponíveis no formulário JSON:

fetch('/__/firebase/init.json').then(response => {
  firebase.initializeApp(response.json());
});

A gestão de vários ambientes (como desenvolvimento, preparo e produção) é facilitada pela configuração automática do SDK a partir de uma única base de códigos. Ao contar com o URL reservado, você pode implantar o mesmo código em vários projetos do Firebase.

Auxiliares do Auth

O Firebase Authentication use o namespace reservado para fornecer JavaScript e HTML especiais a fim de concluir a autenticação com provedores via OAuth. Assim, cada um de nossos clientes pode ter um domínio exclusivo do projeto deles, o que aumenta a segurança do Firebase Authentication.

Além disso, você pode usar seu próprio domínio personalizado para a opção authDomain do firebase.initializeApp(). Se você tiver configurado um domínio personalizado para o Firebase Hosting, especifique esse domínio personalizado em vez do subdomínio firebaseapp.com ao inicializar os SDKs do Firebase.

URLs reservados e service workers

Se você estiver criando um Progressive Web App, gere um service worker que tenha um "fallback de navegação" e renderize um URL específico por padrão, caso ele não corresponda a uma lista de itens armazenados previamente em cache. Você precisa desativar o fallback do namespace /__ para que o Firebase Hosting funcione corretamente.

Se você estiver usando a biblioteca sw-precache, adicione uma configuração de lista de permissões do fallback de navegação que exclua o namespace reservado:

{
  navigateFallbackWhitelist: [/^(?!\/__).*/]
}

Em geral, lembre-se de que o namespace com sublinhado duplo é reservado para uso do Firebase e de que não é permitido interceptar essas solicitações no seu service worker.

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.