Confira tudo que foi anunciado no Firebase Summit e veja como usar nossa plataforma para acelerar o desenvolvimento de apps e executar os aplicativos com confiança. Saiba mais

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.