Web uygulamanızı Firebase Hosting emülatörüyle prototiplemeye ve test etmeye başlamadan önce Firebase Local Emulator Suite iş akışını genel olarak anladığınızdan, Local Emulator Suite'i yükleyip yapılandırdığınızdan ve CLI komutlarını incelediğinizden emin olun.
Ayrıca, Firebase Hosting için özellikler ve uygulama iş akışı hakkında da bilgi sahibi olmanız gerekir. Firebase Hosting ile ilgili girişle başlayın.
Firebase Hosting emülatörüyle neler yapabilirim?
Firebase Hosting emülatörü, üretim Hosting'de bulunan işlevlerin çoğunu sunarak Hosting hizmetlerinin yüksek kaliteli yerel emülasyonunu sağlar. Hosting emülatörü sayesinde şunları yapabilirsiniz:
- Statik sitelerinizin ve web uygulamalarınızın prototipini depolama alanı veya erişim ücreti ödemeden oluşturun
- Hosting sitenize dağıtmadan önce HTTPS işlevlerinin prototipini oluşturun, test edin ve hata ayıklama yapın
- Siteleri ve web uygulamalarını kapsayıcı tabanlı, sürekli entegrasyon iş akışlarında test edin.
Firebase projesi seçme
Firebase Local Emulator Suite, tek bir Firebase projesi için ürün emülasyonu yapar.
Kullanılacak projeyi seçmek için emülatörleri başlatmadan önce CLI'de çalışma dizininizde firebase use
komutunu çalıştırın. Alternatif olarak, her emülatör komutuna --project
işaretini de iletebilirsiniz.
Local Emulator Suite, gerçek Firebase projelerinin ve demo projelerinin emülasyonunu destekler.
Proje türü | Özellikler | Emülatörlerle kullanım |
---|---|---|
Gerçek |
Gerçek Firebase projesi, oluşturduğunuz ve yapılandırdığınız (muhtemelen Firebase konsolu üzerinden) projedir. Gerçek projelerde veritabanı örnekleri, depolama alanı paketleri, işlevler veya söz konusu Firebase projesi için oluşturduğunuz diğer kaynaklar gibi canlı kaynaklar bulunur. |
Gerçek Firebase projeleriyle çalışırken desteklenen ürünlerin herhangi biri veya tümü için emülatör çalıştırabilirsiniz. emüle etmediğiniz tüm ürünler için uygulamalarınız ve kodunuz, canlı kaynakla (veritabanı örneği, depolama paketi, işlev vb.) etkileşime girer. |
Demo |
Demo Firebase projelerinde gerçek Firebase yapılandırması ve canlı kaynak bulunmaz. Bu projelere genellikle codelab'ler veya diğer eğitici içerikler üzerinden erişilir. Demo projelerin proje kimliklerinde |
Demo Firebase projeleriyle çalışırken uygulamalarınız ve kodunuz yalnızca emülatörlerle etkileşim kurar. Uygulamanız, emülatörünün çalışmadığı bir kaynağa etkileşime geçmeye çalışırsa bu kod başarısız olur. |
Mümkün olduğunda demo projeleri kullanmanızı öneririz. Sunulan avantajlar arasında şunlar sayılabilir:
- Emülatörleri bir Firebase projesi oluşturmadan çalıştırabileceğiniz için kurulumu daha kolaydır
- Kodunuz yanlışlıkla emüle edilmemiş (üretim) kaynakları çağırırsa veri değişikliği, kullanım ve faturalandırma söz konusu olmayacağından daha yüksek güvenlik
- SDK yapılandırmanızı indirmek için internete erişmeniz gerekmediğinden daha iyi çevrimdışı destek.
Temel prototip oluşturma iş akışı
Hızlı iterasyonlar yapıyorsanız veya uygulamanızın emülasyonlu arka uç proje kaynaklarıyla etkileşim kurmasını istiyorsanız Hosting içeriğinizi ve yapılandırmanızı yerel olarak test edebilirsiniz. Yerel olarak test yaparken Firebase, web uygulamanızı yerel olarak barındırılan bir URL'de sunar.
(İsteğe bağlı) Varsayılan olarak, yerel olarak barındırılan uygulamanız emülete değil, proje kaynaklarıyla (işlevler, veritabanı, kurallar vb.) gerçek etkileşim kurar. Bunun yerine, isteğe bağlı olarak uygulamanızı bağlayarak yapılandırdığınız emulated proje kaynaklarını kullanabilirsiniz. Daha fazla bilgi: Realtime Database | Cloud Firestore | Cloud Functions
Yerel proje dizininizin kökünden aşağıdaki komutu çalıştırın:
firebase emulators:start
Web uygulamanızı, CLI tarafından döndürülen yerel URL'de (genellikle
http://localhost:5000
) açın.Yerel URL'yi değişikliklerle güncellemek için tarayıcınızı yenileyin.
Diğer yerel cihazlardan test etme
Emülatörler varsayılan olarak yalnızca localhost
tarafından gönderilen isteklere yanıt verir. Bu, barındırılan içeriğinize bilgisayarınızın web tarayıcısından erişebileceğiniz ancak ağınızdaki diğer cihazlardan erişemeyeceğiniz anlamına gelir. Diğer yerel cihazlardan test yapmak istiyorsanız firebase.json
cihazınızı aşağıdaki gibi yapılandırın:
"emulators": {
// ...
"hosting": {
"port": 5000,
"host": "0.0.0.0"
}
}
Sürekli entegrasyon iş akışları için kimlik doğrulama jetonları oluşturma
Sürekli entegrasyon iş akışlarınız Firebase Hosting'e dayanıyorsa firebase emulators:exec
çalıştırmak için jeton kullanarak giriş yapmanız gerekir. Diğer emülatörlerde giriş yapılması gerekmez.
Jeton oluşturmak için yerel ortamınızda firebase login:ci
komutunu çalıştırın. Bu işlem bir CI sisteminden yapılmamalıdır. Kimlik doğrulama talimatlarını uygulayın.
Jeton tüm derlemelerde geçerli olacağından bu adımı proje başına yalnızca bir kez uygulamanız gerekir. Jeton, şifre gibi ele alınmalıdır. Gizli tutulmasına dikkat edin.
CI ortamınız, derleme komut dosyalarında kullanılabilecek ortam değişkenleri belirtmenize izin veriyorsa FIREBASE_TOKEN
adlı bir ortam değişkeni oluşturup değerini erişim jetonu dizesi olarak ayarlayın. Firebase CLI, FIREBASE_TOKEN
ortam değişkenini otomatik olarak alır ve emülatörler doğru şekilde başlar.
Son çare olarak jetonu derleme komut dosyanıza ekleyebilirsiniz ancak güvenilmeyen tarafların erişemediğinden emin olun. Bu sabit kodlu yaklaşım için firebase emulators:exec
komutuna --token "YOUR_TOKEN_STRING_HERE"
ekleyebilirsiniz.
Sonrasında ne olacak?
- Firebase web codelab'ini uygulayarak Hosting emülatörünü kullanarak hızlı başlangıç yapın.
- İşlevler için barındırma kılavuzlarında açıklandığı şekilde Hosting emülatörünü kullanarak HTTPS işlevlerinin nasıl prototip edileceğini öğrenin.
- Seçili videolar ve ayrıntılı "Nasıl Yapılır?" örnekleri için Firebase Emulators Eğitimi Oynatma Listesi'ni takip edin.