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 bilgi sahibi olmanız gerekir. Firebase Hosting ile ilgili giriş ile 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
- Barındırma sitenize dağıtmadan önce HTTPS işlevlerini prototip haline getirme, test etme ve hata ayıklama
- 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 projesinin ürünlerini taklit eder.
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 kullanma |
---|---|---|
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ülasyon oluşturmadığınız ürünlerde uygulamalarınız ve kodunuz canlı kaynakla (veritabanı örneği, depolama alanı paketi, işlev vb.) etkileşim kurar. |
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:
- Firebase projesi oluşturmadan emülatörleri çalıştırabileceğiniz için daha kolay kurulum
- Kodunuz yanlışlıkla taklit edilmeyen (üretim) kaynakları çağırırsa veri değişikliği, kullanım ve faturalandırma olasılığı olmadığından daha güçlü 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ı) Yerel olarak barındırılan uygulamanız varsayılan olarak emüle edilmiş değil gerçek proje kaynaklarıyla (işlevler, veritabanı, kurallar vb.) 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ülasyon cihazları 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
'ü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'i kullanı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 düzgün ş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ığı gibi, Hosting emülatörünü kullanarak HTTPS işlevlerinin prototipini nasıl oluşturacağınızı öğ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.