Regado de Firebase Functions

Kiel uzi laŭmendan domajnon por Fajrobazaj Funkcioj

Preta, Metu, Fajru!

Saluton, Tom ĉi tie skribas! Se vi estas fervora uzanto de Firebase, vi scias, kiom simpla povas esti via simpla pritraktado de via malantaŭa backend. Danke al Funkciaj Funkcioj, mi simple skribas mian komercan logikon kiel simplan funkcion, disfaldas ĉi tiun funkcion per la CLI kaj povas atingi ĝin de la nubo ĉie sur la planedo. La aranĝo mem estas tiel simpla, ke la deplojo sola postulas nur kelkajn minutojn. Sed ekzistas speciala kazo kun Funkciaj Funkcioj, kiu eble bezonus iom pli da laboro - uzante laŭmendan domajnon, kaj ne tiun provizitan de Fajrobazo.

La defio

Se vi nur disfaldas Firebase Functions kiel priskribite, vi ricevos gastiganton sub subdomajno de Google, specife sub

cloudfunctions.net

Por simplaj uzokazoj, ĉi tio plejparte estas tio, kion vi bezonas - nur disfaldi la aferon kaj disponigi ĝin por konsumi. Sed aliaj uzokazoj postulas, ke via backend estu atingebla sub via domajno. Por ĉi tiu ekzemplo, mi uzos mian propran domajnon flaming.codes.

La aranĝo

Jen la antaŭkondiĉoj, nur por certigi:

  • vi instalis Firebase Project
  • sub Gastigado, vi starigis vian kutiman domajnon; ĉi tio estas simpla procezo, kie vi nur devas stoki TXT-rekordon ĉe via gastiganta provizanto

La agordo

Por efektive krei vian laŭmendan domajnon ne nur funkcii por via gastigita retejo, sed ankaŭ por viaj funkcioj, firebase.json devas esti ĝisdatigita (klarigo post la specimeno):

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

La sola truko por funkciigi ĝin estas ĝisdatigi la gastigan ŝlosilon, ne funkciojn, en via firebase.json. Kion ni esence faras estas diri al Firebase, ke de nia gastigita retejo-programo ĉiuj alvokoj al / api / ... devas esti redirektitaj al la funkcio nomata api. La afero, kiu prenis min plej longe, estis la dua ero, kie mi eksplicite devas deklari, ke ĉiu alia vojo ol api estas pritraktata kiel defaŭlta retejo-programo.

Uzante la sekvan aranĝon, la malnovan nuban funkcion

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

tial fariĝas

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

Notu, ke ordo gravas ĉi tie, la reverkaj reguloj procesiĝas de unua ĝis lasta elemento, do ĉi-kaze de supre ĝis sube, vide parolante. Uzi ĵokeron por mapi ĉiujn viajn funkciojn estas vere ne konsilata por ĝenerala uzado, ĉar ĝi rompus vian retprogramon.

Envolvu

Kaj jes, ĝi vere ne estas magio, sed povas multe helpi kiam oni uzas Firebase-Funkciojn en iuj uzokazoj. Ni vidis kiel reskribi viajn nubajn funkciojn kiel parton de la jam registrita domajno, tial forigante la postulon por nova laŭmenda subdomajno - kvankam tio ankaŭ eblas, sed ekster la amplekso de ĉi tiu lernilo.

  • Tom