Firebase İşlevleri etki alanı

Firebase İşlevleri için özel bir etki alanı nasıl kullanılır?

Hazır, Hazır, Ateş!

Merhaba, Tom burada yazıyor! Firebase'in hevesli bir kullanıcısıysanız, arka ucu olmayan arka ucunuzu yönetmenin aslında ne kadar basit olabileceğini bilirsiniz. Firebase Functions sayesinde iş mantığımı sade bir fonksiyon olarak yazıyorum, bu fonksiyonu CLI aracılığıyla dağıtıyorum ve ona gezegenin her yerinden buluttan ulaşabiliyorum. Kurulumun kendisi o kadar basittir ki, dağıtım tek başına en fazla birkaç dakika sürer. Ancak Firebase İşlevlerinde, Firebase tarafından sağlanan değil, özel bir etki alanı kullanarak biraz daha çalışma gerektirebilecek özel bir durum vardır.

Meydan okuma

Firebase Functions'ı açıklandığı gibi dağıtırsanız, Google'dan bir alt alan adı altında, özellikle

bulut işlevleri.net

Basit kullanım durumları için, çoğunlukla ihtiyacınız olan şey budur - sadece şeyi dağıtın ve tüketmeye hazır hale getirin. Ancak diğer kullanım durumları, arka ucunuzun alanınız altında erişilebilir olmasını gerektirir. Bu örnek için kendi etki alanımı flaming.codes kullanacağım.

kurulum

Emin olmak için önkoşullar şunlardır:

  • bir Firebase Projesi kurdunuz
  • Barındırma altında, özel alan adınızı kurdunuz; bu, barındırma sağlayıcınızda bir TXT kaydını saklamanız gereken basit bir işlemdir.

yapılandırma

Özel alan adınızın yalnızca barındırılan web uygulamanız için değil, aynı zamanda işlevleriniz için de çalışmasını sağlamak için firebase.json'un güncellenmesi gerekir (örnekten sonraki açıklama):

{
  "functions": {
    ...
  },
  "hosting": {
    ...,
    "rewrites": [
      {
        "source": "/api/**",
        "function": "api"
      },
      {
        "source": "!/api/**",
        "destination": "/index.html"
      }
    ]
  },
  ...
}

Çalışmasını sağlamanın tek püf noktası, firebase.json'unuzdaki işlevleri değil, barındırma anahtarını güncellemektir. Temelde yaptığımız şey, Firebase'e, barındırılan web uygulamamızdan /api/... öğesine yapılan tüm çağrıların api adlı işleve yeniden yönlendirilmesi gerektiğini söylemek. Beni en uzun süren şey, varsayılan bir web uygulaması rotası olarak ele alınacak api dışındaki tüm rotaları açıkça beyan etmem gereken ikinci öğeydi.

Aşağıdaki kurulumu kullanarak, eski bulut işlevi

https://uscentral1-flaming-codes.cloudfunctions.net/api

bu nedenle olur

https://flaming.codes/api/...

Burada sıranın önemli olduğuna dikkat edin, yeniden yazma kuralları ilk öğeden son öğeye kadar işlenir, bu durumda görsel olarak yukarıdan aşağıya doğru işlenir. Tüm işlevlerinizi yeniden eşlemek için bir joker karakter kullanmak, web uygulamanızı bozacağından genel kullanım için gerçekten önerilmez.

Sarmak

Ve evet, gerçekten sihir değil, ancak belirli kullanım durumlarında Firebase İşlevlerini kullanırken büyük ölçüde yardımcı olabilir. Halihazırda kayıtlı etki alanının bir parçası olarak bulut işlevlerinizi nasıl yeniden yazacağınızı gördük, bu nedenle yeni, özel bir alt etki alanı gereksinimini ortadan kaldırdık - bu da mümkün olsa da, bu eğitimin kapsamı dışındadır.

  • Tom