Firebase Barındırma Emülatörü ile web uygulamaları prototipini oluşturun ve test edin

Web uygulamanızın prototipini oluşturmaya ve Firebase Hosting emülatörüyle test etmeye başlamadan önce genel Firebase Local Emulator Suite iş akışını anladığınızdan, Local Emulator Suiteyükleyip yapılandırdığınızdan ve Local Emulator Suite'ın CLI komutlarını incelediğinizden emin olun.

Ayrıca, Firebase Hosting ile ilgili özellikler ve uygulama iş akışı hakkında da bilgi sahibi olmanız gerekir. Firebase Hosting'a giriş ile başlayın.

Firebase Hosting emülatörüyle neler yapabilirim?

Firebase Hosting emülatörü, Hosting hizmetlerinin yüksek kaliteli yerel emülasyonunu sağlar ve üretimde Hosting bulunan işlevlerin çoğunu sunar. Hosting emülatörü ile şunları yapabilirsiniz:

  • Depolama veya erişim ücreti ödemeden statik sitelerinizin ve web uygulamalarınızın prototipini oluşturun
  • HTTPS işlevlerini barındırma sitenize dağıtmadan önce prototip oluşturma, test etme ve hatalarını ayıklama
  • Container mimarisine alınmış, sürekli entegrasyon iş akışlarında test siteleri ve web uygulamaları.

Bir Firebase projesi seçin

Firebase Local Emulator Suite, tek bir Firebase projesi için ürünleri taklit eder.

Kullanılacak projeyi seçmek için emülatörleri başlatmadan önce çalışma dizininizde firebase use komutunu çalıştırın. Alternatif olarak, her bir emülatör komutuna --project işaretini iletebilirsiniz.

Local Emulator Suite Gerçek Firebase projelerinin ve demo projelerinin emülasyonunu destekler.

Proje türü Özellikler Emülatörlerle kullanma
Real

Gerçek bir Firebase projesi, sizin oluşturup yapılandırdığınız (büyük olasılıkla Firebase konsolu üzerinden) bir projedir.

Gerçek projelerde veritabanı örnekleri, depolama paketleri, işlevler veya söz konusu Firebase projesi için ayarladığınız 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ülasyonunu yapmadığınız tüm ürünler için uygulamalarınız ve kodunuz canlı kaynakla (veritabanı örneği, depolama paketi, işlev vb.) etkileşimde bulunur.

Demo

Demo Firebase projesinde gerçek Firebase yapılandırması ve canlı kaynaklar yoktur. Bu projelere genellikle codelab'ler veya diğer eğitimler aracılığıyla erişilir.

Demo projelerin proje kimlikleri demo- önekine sahiptir.

Demo Firebase projeleriyle çalışırken uygulamalarınız ve kodunuz yalnızca emülatörlerle etkileşimde bulunur. Uygulamanız, emülatörün çalışmadığı bir kaynakla etkileşime girmeye çalışırsa bu kod başarısız olur.

Mümkün olan her durumda demo projeleri kullanmanızı öneririz. Sunulan avantajlar arasında şunlar sayılabilir:

  • Emülatörleri Firebase projesi oluşturmadan çalıştırabileceğiniz için daha kolay kurulum
  • Kodunuz yanlışlıkla emüle edilmemiş (üretim) kaynakları çağırdığında 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 sunar.

Temel prototip oluşturma iş akışı

Hızlı yinelemeler yapıyorsanız veya uygulamanızın, emüle edilmiş arka uç proje kaynaklarıyla etkileşime girmesini 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.

  1. (İsteğe bağlı) Yerel olarak barındırılan uygulamanız varsayılan olarak emüle edilen 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 tüm emüle edilmiş proje kaynaklarını kullanabilirsiniz. Daha fazla bilgi: Realtime Database | Cloud Firestore | Cloud Functions

  2. Yerel proje dizininizin kökünden aşağıdaki komutu çalıştırın:

    firebase emulators:start
  3. Web uygulamanızı CLI tarafından döndürülen yerel URL'de (genellikle http://localhost:5000) açın.

  4. 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 adresinden gelen 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 etmek isterseniz 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 bağlıysa firebase emulators:exec komutunu çalıştırmak için jeton kullanarak giriş yapmanız gerekir. Diğer emülatörler için 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, derlemelerde geçerli olacağından bu adımı proje başına yalnızca bir kez uygulamanız gerekir. Jeton, şifre gibi ele alınmalı ve gizli tutulmalıdır.

CI ortamınız, derleme komut dosyalarında kullanılabilecek ortam değişkenleri belirtmenize olanak tanıyorsa erişim jetonu dizesi değerine sahip FIREBASE_TOKEN adlı bir ortam değişkeni oluşturmanız yeterlidir. Firebase CLI, FIREBASE_TOKEN ortam değişkenini otomatik olarak alır ve emülatörler düzgün şekilde başlatılır.

Son çare olarak, jetonu derleme komut dosyanıza ekleyebilirsiniz ancak güvenilmeyen tarafların erişimi olmadığından emin olun. Bu sabit kodlu yaklaşım için --token "YOUR_TOKEN_STRING_HERE" komutuna firebase emulators:exec ekleyebilirsiniz.

Sonrasında ne olacak?