Firebase KSA'yı kullanarak Next.js web uygulamalarınızı Firebase'e dağıtabilir ve Firebase Hosting ile sunabilirsiniz.
Statik içerik sunma
Firebase'i başlattıktan sonra, standart dağıtım komutuyla statik içerik sunabilirsiniz:
firebase deploy
Uygulamanızda dinamik sunucu tarafı mantığı varsa KSA bu mantığı Cloud Functions for Firebase'ya dağıtır. Dağıtılan uygulamanızı canlı sitesinde görüntüleyebilirsiniz.
Dinamik içeriği önceden oluşturma
Firebase CLI, getStaticProps ve getStaticPaths kullanımını algılar.
İsteğe bağlı: Firebase JS SDK ile entegrasyon
Firebase JS SDK yöntemlerini hem sunucu hem de istemci paketlerine dahil ederken ürünü kullanmadan önce isSupported() kontrolü yaparak çalışma zamanı hatalarına karşı koruma sağlayın.
Tüm ürünler tüm ortamlarda desteklenmez.
İsteğe bağlı: Firebase Admin SDK ile entegrasyon
Tarayıcı derlemenize dahil edilen Admin SDK paketleri başarısız olur. Bu paketlere yalnızca getStaticProps ve getStaticPaths içinde başvurun.
Tamamen dinamik içerik sunma (SSR)
Firebase KSA, getServerSideProps kullanımını algılar. Bu gibi durumlarda CLI, dinamik sunucu kodu çalıştırmak için işlevleri Cloud Functions for Firebase'ya dağıtır. Bu işlevlerle ilgili alan ve çalışma zamanı yapılandırması gibi bilgileri Firebase konsolunda görüntüleyebilirsiniz.
Hosting davranışını next.config.js ile yapılandırma
Görüntü Optimizasyonu
Next.js Image Optimization'ın kullanılması desteklenir ancak SSR kullanmıyor olsanız bile bir işlevin (Cloud Functions for Firebase içinde) oluşturulmasını tetikler.
Yönlendirmeler, Yeniden Yazmalar ve Üstbilgiler
Firebase CLI, next.config.js içindeki yönlendirmelere, yeniden yazmalara ve üstbilgilere saygı duyar ve bunları dağıtım sırasında ilgili eşdeğer Firebase Hosting yapılandırmasına dönüştürür. Bir Next.js yönlendirmesi, yeniden yazma veya başlığı eşdeğer bir Firebase Hosting başlığına dönüştürülemiyorsa yedek olarak işlev oluşturulur. Bu, resim optimizasyonu veya SSR kullanmıyor olsanız bile geçerlidir.
İsteğe bağlı: Firebase Authentication ile entegrasyon
Web çerçevesiyle uyumlu Firebase dağıtım aracı, çerezleri kullanarak istemci ve sunucu durumunu otomatik olarak senkronize eder. SSR'de kimlik doğrulama bağlamına erişmek için bazı yöntemler sağlanır:
- Express
res.localsnesnesi isteğe bağlı olarak kimliği doğrulanmış bir Firebase App örneği (firebaseApp) ve şu anda oturum açmış kullanıcıyı (currentUser) içerir. Bu nesneyegetServerSidePropsiçinde erişilebilir. - Kimliği doğrulanmış Firebase uygulaması adı, rota sorgusunda (
__firebaseAppName) sağlanır. Bu, bağlam içinde manuel entegrasyona olanak tanır:
// get the authenticated Firebase App
const firebaseApp = getApp(useRouter().query.__firebaseAppName);