तैयार, सेट, आग!
हाय वहाँ, टॉम यहाँ लिख रहा है! यदि आप फायरबेस के उत्साही उपयोगकर्ता हैं, तो आप जानते हैं कि आपके बैकएंड-कम बैकएंड को संभालना वास्तव में कितना आसान हो सकता है। फायरबेस फंक्शंस के लिए धन्यवाद, मैं सिर्फ अपने व्यापार तर्क को एक सादे फ़ंक्शन के रूप में लिखता हूं, सीएलआई के माध्यम से इस फ़ंक्शन को तैनात करता हूं और इसे ग्रह पर हर जगह क्लाउड से पहुंचा सकता हूं। सेटअप स्वयं इतना सरल है, कि अकेले परिनियोजन में अधिकतम कुछ मिनट का समय लगता है। लेकिन फायरबेस फंक्शंस के साथ एक विशेष मामला है जिसके लिए कुछ और काम करने की आवश्यकता हो सकती है - कस्टम डोमेन का उपयोग करना, न कि फायरबेस द्वारा प्रदान किया गया।
चुनौती
यदि आप वर्णित के रूप में फायरबेस फ़ंक्शंस को तैनात करते हैं, तो आपको Google से एक उपडोमेन के तहत होस्ट मिलेगा, विशेष रूप से नीचे
Cloudfunctions.net
सरल उपयोग के मामलों के लिए, यह वही है जो आपको चाहिए - बस चीज़ को तैनात करें और इसे उपभोग के लिए उपलब्ध कराएं। लेकिन अन्य उपयोग के मामलों के लिए आवश्यक है कि आपका बैकएंड आपके डोमेन के अंतर्गत उपलब्ध हो। इस उदाहरण के लिए, मैं अपने स्वयं के डोमेन फ्लेमिंग.कोड का उपयोग करूंगा।
सेट अप
यहाँ पूर्वापेक्षाएँ हैं, बस यह सुनिश्चित करने के लिए:
- आपने एक Firebase प्रोजेक्ट सेटअप किया है
- होस्टिंग के अंतर्गत, आपने अपना कस्टम डोमेन सेट किया है; यह एक सीधी प्रक्रिया है, जहां आपको बस अपने होस्टिंग प्रदाता पर एक TXT-रिकॉर्ड स्टोर करना होगा
विन्यास
वास्तव में आपके कस्टम डोमेन को न केवल आपके होस्ट किए गए वेब ऐप के लिए बल्कि आपके कार्यों के लिए भी काम करने के लिए, firebase.json को अपडेट करना होगा (नमूने के बाद स्पष्टीकरण):
{
"functions": {
...
},
"hosting": {
...,
"rewrites": [
{
"source": "/api/**",
"function": "api"
},
{
"source": "!/api/**",
"destination": "/index.html"
}
]
},
...
}
इसे काम करने की एकमात्र तरकीब है कि आप अपने firebase.json में होस्टिंग कुंजी को अपडेट करें, न कि फ़ंक्शन को। हम मूल रूप से जो कर रहे हैं वह फायरबेस को बता रहा है कि हमारे होस्टेड वेब ऐप से, सभी कॉल /api/... को एपीआई नामक फ़ंक्शन पर रीडायरेक्ट किया जाना चाहिए। जिस चीज ने मुझे सबसे लंबे समय तक लिया वह दूसरी वस्तु थी, जहां मुझे स्पष्ट रूप से एपीआई के अलावा हर दूसरे मार्ग को डिफ़ॉल्ट वेब ऐप रूट के रूप में संभालने की घोषणा करनी थी।
निम्न सेटअप का उपयोग करते हुए, पुराना क्लाउड फ़ंक्शन
https://uscentral1-flaming-codes.cloudfunctions.net/api
इसलिए बन जाता है
ध्यान दें कि आदेश यहां महत्वपूर्ण है, पुनर्लेखन-नियम पहले से अंतिम तत्व तक संसाधित होते हैं, इसलिए इस मामले में ऊपर से नीचे, दृष्टि से बोलते हुए। अपने सभी कार्यों को फिर से मैप करने के लिए वाइल्डकार्ड का उपयोग करना वास्तव में सामान्य उपयोग के लिए अनुशंसित नहीं है, क्योंकि यह आपके वेब ऐप को तोड़ देगा।
लपेटें
और हाँ, यह वास्तव में कोई जादू नहीं है, लेकिन कुछ उपयोग के मामलों में फायरबेस फ़ंक्शंस का उपयोग करते समय बहुत मदद कर सकता है। हमने देखा है कि पहले से पंजीकृत डोमेन के हिस्से के रूप में अपने क्लाउड फ़ंक्शंस को कैसे फिर से लिखना है, इसलिए एक नए, कस्टम सबडोमेन की आवश्यकता को समाप्त करना - हालांकि यह भी संभव है, लेकिन इस ट्यूटोरियल के दायरे से बाहर है।
- Tom