Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Carregar SDKs do Firebase de URLs reservados

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

O Firebase Hosting reserva URLs em seu site começando com /__ . Esse namespace reservado facilita o uso de outros produtos Firebase junto com o Firebase Hosting.

Esses URLs reservados estão disponíveis quando você implanta no Firebase ( firebase deploy ) ou quando executa seu aplicativo em um servidor local ( firebase serve ).

Adicionar scripts para URLs reservados

Como o Firebase Hosting é servido por HTTP/2 quando implantado, você pode aumentar o desempenho carregando arquivos da mesma origem. O Firebase Hosting oferece a versão 8 do Firebase JavaScript SDK a partir de URLs especiais formatados da seguinte forma:

/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js

Recomendamos carregar apenas as bibliotecas que você usa em seu aplicativo. Por exemplo, para incluir apenas Autenticação e Cloud Firestore, adicione os seguintes scripts na parte inferior de sua tag <body> , mas antes de usar qualquer serviço do Firebase:

<body>
  <!-- Insert these scripts at the bottom of the HTML, but before you use any Firebase services -->
  <!-- Firebase App (the core Firebase SDK) is always required and must be listed first -->
  <script src="/__/firebase/8.10.1/firebase-app.js"></script>

  <!-- Add Firebase products that you want to use -->
  <script src="/__/firebase/8.10.1/firebase-auth.js"></script>
  <script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
</body>

Configuração automática do SDK

A configuração automática do SDK facilita o gerenciamento de vários ambientes (como desenvolvimento, preparação e produção) a partir de uma única base de código. Ao confiar no URL de hospedagem reservado, você pode implantar o mesmo código em vários projetos do Firebase.

Além de hospedar os próprios SDKs, o namespace reservado também fornece toda a configuração necessária para inicializar o SDK para o projeto Firebase associado ao site de hospedagem. Essa configuração do Firebase e a inicialização do SDK são fornecidas por um script que você pode incluir diretamente:

<!-- Load the Firebase SDKs before loading this file -->
<script src="/__/firebase/init.js"></script>

Quando você implanta no Firebase ou testa seu aplicativo localmente, esse script configura automaticamente o Firebase JavaScript SDK para o projeto ativo do Firebase e inicializa o SDK.

Se você preferir controlar a inicialização sozinho, os valores de configuração do Firebase também estão disponíveis no formato JSON:

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

SDKs Firebase JS disponíveis (de URLs de hospedagem reservados)

Produto Firebase Referência da biblioteca (URL reservada)
Núcleo do Firebase
(requeridos)
<script src="/__/firebase/8.10.1/firebase-app.js"></script>
Análise
<script src="/__/firebase/8.10.1/firebase-analytics.js"></script>
Verificação de aplicativo
<script src="/__/firebase/8.10.1/firebase-app-check.js"></script>
Autenticação
<script src="/__/firebase/8.10.1/firebase-auth.js"></script>
Cloud Firestore
<script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
Cloud Functions para Firebase Client SDK
<script src="/__/firebase/8.10.1/firebase-functions.js"></script>
Instalações do Firebase
<script src="/__/firebase/8.10.1/firebase-installations.js"></script>
Mensagens na nuvem
<script src="/__/firebase/8.10.1/firebase-messaging.js"></script>

Para uma experiência ideal usando o Cloud Messaging, adicione também o Firebase SDK for Analytics.

Armazenamento na núvem
<script src="/__/firebase/8.10.1/firebase-storage.js"></script>
Monitoramento de desempenho
( versão beta )
<script src="/__/firebase/8.10.1/firebase-performance.js"></script>
banco de dados em tempo real
<script src="/__/firebase/8.10.1/firebase-database.js"></script>
Configuração Remota
( versão beta )
<script src="/__/firebase/8.10.1/firebase-remote-config.js"></script>

Para uma experiência ideal usando o Remote Config, adicione também o Firebase SDK for Analytics.

SDK do Firebase para JavaScript
(SDK inteiro)
<script src="/__/firebase/8.10.1/firebase.js"></script>

Auxiliares de autenticação

O Firebase Authentication usa o namespace reservado para fornecer JavaScript e HTML especiais para concluir a autenticação com provedores via OAuth. Isso permite que cada projeto do Firebase tenha um subdomínio exclusivo do Firebase, aumentando a segurança do Firebase Authentication.

Além disso, isso permite que você use seu próprio domínio personalizado para a opção authDomain de firebase.initializeApp firebase.initializeApp() . Se você configurar um domínio personalizado para o Firebase Hosting, também poderá especificar esse domínio personalizado (em vez de seu subdomínio web.app ou firebaseapp.com ) ao inicializar os SDKs do Firebase.

URLs reservados e service workers

Se você estiver criando um Progressive Web App (PWA), poderá criar um service worker que tenha um "fallback de navegação" e renderize uma URL específica por padrão se ela não corresponder a uma lista de itens pré-armazenados em cache.

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

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

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