Ayrılmış URL'lerden Firebase SDK'larını yükle

Firebase Hosting, sitenizde /__ ile başlayan URL'leri ayırır. Bu ayrılmış ad alanı, Firebase Hosting ile birlikte diğer Firebase ürünlerini kullanmayı kolaylaştırır.

Bu ayrılmış URL'ler hem Firebase'e dağıttığınızda (firebase deploy) hem de uygulamanızı yerel bir sunucuda çalıştırdığınızda (firebase serve) kullanılabilir.

Ayrılmış URL'ler için komut dosyaları ekleme

Firebase Hosting dağıtıldığında HTTP/2 üzerinden sunulduğundan, dosyaları aynı kaynaktan yükleyerek performansı artırabilirsiniz. Firebase Hosting, Firebase JavaScript SDK'sının 8. sürümünü şu şekilde biçimlendirilmiş özel URL'lerden sunar:

/__/firebase/JS_SDK_VERSION/FIREBASE_SDK_NAME.js

Yalnızca uygulamanızda kullandığınız kitaplıkları yüklemenizi önemle tavsiye ederiz. Örneğin, yalnızca Authentication ve Cloud Firestore'i dahil etmek için Firebase hizmetlerini kullanmadan önce aşağıdaki komut dosyalarını <body> etiketinizin alt kısmına ekleyin:

<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>

SDK otomatik yapılandırması

Otomatik SDK yapılandırması, tek bir kod tabanından birden fazla ortamı (ör. geliştirme, hazırlık ve üretim) yönetmeyi kolaylaştırır. Ayrılmış Hosting URL'sini kullanarak aynı kodu birden fazla Firebase projesine dağıtabilirsiniz.

Ayrılmış ad alanı, SDK'ları barındırmanın yanı sıra Hosting sitesiyle ilişkili Firebase projesi için SDK'yı başlatmak üzere gereken tüm yapılandırmayı da sağlar. Bu Firebase yapılandırması ve SDK'nın başlatılması, doğrudan dahil edebileceğiniz bir komut dosyası tarafından sağlanır:

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

Firebase'e dağıttığınızda veya uygulamanızı yerel olarak test ettiğinizde bu komut dosyası, Firebase JavaScript SDK'sını etkin Firebase projesi için otomatik olarak yapılandırır ve SDK'yı başlatır.

İlk başlatmayı kendiniz kontrol etmeyi tercih ederseniz Firebase yapılandırma değerleri JSON biçiminde de kullanılabilir:

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

Kullanılabilir Firebase JS SDK'ları (ayrılmış Hosting URL'lerinden)

Firebase ürünü Kitaplık referansı (ayrılmış URL)
Firebase Core
(zorunlu)
<script src="/__/firebase/8.10.1/firebase-app.js"></script>
Analytics
<script src="/__/firebase/8.10.1/firebase-analytics.js"></script>
App Check
<script src="/__/firebase/8.10.1/firebase-app-check.js"></script>
Authentication
<script src="/__/firebase/8.10.1/firebase-auth.js"></script>
Cloud Firestore
<script src="/__/firebase/8.10.1/firebase-firestore.js"></script>
Cloud Functions for Firebase Client SDK
<script src="/__/firebase/8.10.1/firebase-functions.js"></script>
Firebase yükleme
<script src="/__/firebase/8.10.1/firebase-installations.js"></script>
Cloud Messaging
<script src="/__/firebase/8.10.1/firebase-messaging.js"></script>

Cloud Messaging'ü kullanma konusunda en iyi deneyimi yaşamak için Analytics için Firebase SDK'sını da ekleyin.

Cloud Storage
<script src="/__/firebase/8.10.1/firebase-storage.js"></script>
Performance Monitoring
(beta sürümü)
<script src="/__/firebase/8.10.1/firebase-performance.js"></script>
Realtime Database
<script src="/__/firebase/8.10.1/firebase-database.js"></script>
Remote Config
(beta sürümü)
<script src="/__/firebase/8.10.1/firebase-remote-config.js"></script>

Remote Config'ü kullanma konusunda en iyi deneyimi yaşamak için Analytics için Firebase SDK'sını da ekleyin.

Firebase JavaScript SDK
(SDK'nın tamamı)
<script src="/__/firebase/8.10.1/firebase.js"></script>

Kimlik doğrulama yardımcıları

Firebase Authentication, OAuth üzerinden sağlayıcılarla kimlik doğrulamayı tamamlamak için özel JavaScript ve HTML sağlamak üzere ayrılmış ad alanını kullanır. Bu sayede her Firebase projesinin benzersiz bir Firebase alt alan adı olur ve Firebase Authentication'ün güvenliği artar.

Ayrıca bu, firebase.initializeApp() seçeneği için kendi özel alanınızı kullanmanıza olanak tanır.authDomain Firebase Hosting için özel bir alan yapılandırırsanız Firebase SDK'larını başlatırken bu özel alanı (web.app veya firebaseapp.com alt alanınızın yerine) de belirtebilirsiniz. Özel alan kullanma hakkında daha fazla bilgi için signInWithRedirect işlevini kullanmayla ilgili en iyi uygulamalar başlıklı makaleyi inceleyin.

Ayrılmış URL'ler ve servis çalışanları

Progresif Web Uygulaması (PWA) oluşturuyorsanız "gezinme yedeği" olan ve önceden önbelleğe alınmış öğelerin listesiyle eşleşmezse varsayılan olarak belirli bir URL'yi oluşturan bir hizmet çalışanı oluşturabilirsiniz.

sw-precache kitaplığını kullanıyorsanız ayrılmış ad alanını hariç tutan bir gezinme yedek beyaz liste ayarı ekleyebilirsiniz:

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

Genel olarak, çift alt çizgili ad alanının Firebase kullanımı için ayrıldığını ve bu isteklerin hizmet çalışanınızda müdahale edilmemesi gerektiğini unutmayın.