डाइनैमिक लिंक के लिए कस्टम डोमेन सेट अप करना

अगर आपको page.link सबडोमेन के बजाय, अपने डोमेन का इस्तेमाल करना है, तो डाइनैमिक लिंक की ब्रैंडिंग को बेहतर तरीके से कंट्रोल किया जा सकता है. कस्टम डोमेन के साथ, नीचे दिए गए उदाहरणों की तरह से डाइनैमिक लिंक बनाए जा सकते हैं:

https://example.com/link-suffix
https://example.com/links/promos/link-suffix
https://links.example.com/link-suffix
https://ex.amp.le/link-suffix

यूआरएल के link-suffix से पहले वाले हिस्से को यूआरएल प्रीफ़िक्स कहा जाता है. इसमें आपका कस्टम डाइनैमिक लिंक डोमेन और पाथ प्रीफ़िक्स, दोनों शामिल होते हैं. डाइनैमिक लिंक बनाते समय आपको यूआरएल प्रीफ़िक्स देना होगा.

कस्टम डोमेन सेट अप करने के लिए, आपके Firebase प्रोजेक्ट में एडिटर या मालिक की अनुमति होनी चाहिए.

डाइनैमिक लिंक के लिए अपने वेब डोमेन का इस्तेमाल करना

अपने डाइनैमिक लिंक, अपने वेब पेजों, यूनिवर्सल लिंक, और ऐप्लिकेशन लिंक के लिए एक ही डोमेन का इस्तेमाल किया जा सकता है. हालांकि, ऐसा करते समय इस बात का ध्यान रखें कि आपके डाइनैमिक लिंक के यूआरएल आपके वेब यूआरएल से मेल न खाएं. किसी खास यूआरएल प्रीफ़िक्स का इस्तेमाल करने के लिए डाइनैमिक लिंक कॉन्फ़िगर करने पर, उस प्रीफ़िक्स से शुरू होने वाले सभी यूआरएल डाइनैमिक लिंक के तौर पर माने जाते हैं. इस तरह, होस्ट किए गए सामान्य कॉन्टेंट पर ले जाने के लिए, उस प्रीफ़िक्स वाले यूआरएल का इस्तेमाल नहीं किया जा सकता.

उदाहरण के लिए, अगर आपको रिसॉर्स https://example.com/my-resource (वेब पेज, यूनिवर्सल लिंक या ऐप्लिकेशन लिंक) का डाइनैमिक लिंक बनाना है, तो डाइनैमिक लिंक के यूआरएल प्रीफ़िक्स के तौर पर https://example.com/ का इस्तेमाल नहीं किया जा सकता. ऐसा करने पर, https://example.com/my-resource को डाइनैमिक लिंक माना जाएगा. इसके बजाय, आपको किसी दूसरे डोमेन या अलग पाथ प्रीफ़िक्स वाले यूआरएल प्रीफ़िक्स का इस्तेमाल करना होगा.

इसलिए, नीचे दिए गए लंबी अवधि के डाइनैमिक लिंक (और ऐसे ही छोटे लिंक) उम्मीद के मुताबिक काम नहीं करेंगे, क्योंकि link पैरामीटर से तय किए गए यूआरएल, डाइनैमिक लिंक के यूआरएल प्रीफ़िक्स https://example.com/ से शुरू होते हैं:

 https://example.com/?link=https://example.com/my-resource
 https://example.com/?link=https://example.com/resources/my-resource

हालांकि, नीचे दिए गए लंबी अवधि के डाइनैमिक लिंक (और ऐसे ही छोटे लिंक) काम कर सकते हैं, क्योंकि यूआरएल प्रीफ़िक्स link यूआरएल से मेल नहीं खाते:

 https://link.example.com/?link=https://example.com/my-resource
 https://example.com/links/?link=https://example.com/my-resource
 https://ex.amp.le/?link=https://example.com/my-resource

Firebase कंसोल में कस्टम डोमेन सेट अप करना

आम तौर पर, Firebase कंसोल में कस्टम डोमेन को पूरी तरह से सेट अप किया जा सकता है. इसके लिए:

  1. अगर आपने अपने प्रोजेक्ट के लिए Firebase होस्टिंग सेट अप नहीं किया है, तो Firebase कंसोल का होस्टिंग पेज खोलें. इसके बाद, शुरू करें पर क्लिक करके सेटअप के निर्देश देखें. फ़िलहाल, आपको बताए गए चरणों को पूरा करने की ज़रूरत नहीं है.

  2. Firebase कंसोल का डाइनैमिक लिंक वाला पेज खोलें.

  3. अगर आपने डाइनैमिक लिंक का इस्तेमाल पहले नहीं किया है, तो शुरू करें पर क्लिक करें. या फिर, ड्रॉप-डाउन मेन्यू से यूआरएल प्रीफ़िक्स जोड़ें पर क्लिक करें.

    इसके बाद, सेटअप विज़र्ड को पूरा करें. इसमें वह डोमेन और पाथ प्रीफ़िक्स डालें जिसे आपको निर्देश मिलने पर इस्तेमाल करना है.

  4. सिर्फ़ iOS के लिए: अपने Xcode प्रोजेक्ट की Info.plist फ़ाइल में, FirebaseDynamicLinksCustomDomains नाम की एक कुंजी बनाएं और उसे अपने ऐप्लिकेशन के डाइनैमिक लिंक के यूआरएल प्रीफ़िक्स पर सेट करें. उदाहरण के लिए:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/link</string>
      <string>https://example.com/promos</string>
    </array>
    

कस्टम डोमेन को मैन्युअल तरीके से सेट अप करें

कुछ मामलों में, जैसे कि जब डाइनैमिक लिंक के लिए पहले से ही कोई कस्टम डोमेन सेट अप किया गया हो और आपको कोई दूसरा डोमेन जोड़ना हो, तो आपको मैन्युअल तरीके से अपना कस्टम डोमेन सेट अप करना होगा. ऐसा तब भी होता है, जब होस्ट करने वाली साइट से पहले से ही कोई डोमेन जोड़ा जा रहा हो.

इसके लिए:

  1. अगर आपने अभी तक ऐसा नहीं किया है, तो अपने डोमेन को Firebase होस्टिंग से कनेक्ट करें.

    Firebase होस्टिंग के साथ अपना डोमेन सेट अप करने के लिए, लोकल प्रोजेक्ट डायरेक्ट्री में कॉन्फ़िगरेशन फ़ाइल firebase.json बनाना शामिल है.

  2. Firebase सीएलआई को नए वर्शन में अपडेट करें (6.5.0 या इसके बाद का वर्शन).

  3. अपने प्रोजेक्ट की firebase.json फ़ाइल में, अपनी होस्टिंग साइट को डाइनैमिक लिंक के लिए कॉन्फ़िगर करें. अगर आपके प्रोजेक्ट में कई साइटें हैं, तो पक्का करें कि आपने उस डोमेन से कनेक्ट की गई साइट को कॉन्फ़िगर किया हो जिसका आपको इस्तेमाल करना है.

    • appAssociation को AUTO पर सेट करें. इस सेटिंग की मदद से, होस्टिंग की सुविधा, अनुरोध किए जाने पर डाइनैमिक तौर पर assetlinks.json और apple-app-site-association फ़ाइलें जनरेट करती है.

    • उन पाथ प्रीफ़िक्स के बारे में बताएं जिन्हें आपको डाइनैमिक लिंक के लिए इस्तेमाल करना है. इसके लिए, dynamicLinks को true पर सेट करके उसे फिर से लिखने के नियम सेट करें. इन पाथ के अनुरोध, डाइनैमिक लिंक के प्रॉक्सी कर दिए जाते हैं.

      यूआरएल के पाथ को फिर से लिखने वाले नियमों के उलट, डाइनैमिक लिंक को फिर से लिखने के नियमों में रेगुलर एक्सप्रेशन शामिल नहीं हो सकते.

      अगर आपकी साइट के लिए एक से ज़्यादा रीराइट नियम हैं, तो ध्यान रखें कि होस्टिंग, अनुरोध से मेल खाने वाला पहला रीराइट नियम लागू करता है.

    उदाहरण के लिए:

    "hosting": {
      // ...
      "appAssociation": "AUTO",
      "rewrites": [
        {
          "source": "/promos/**",
          "dynamicLinks": true
        },
        {
          "source": "/links/share/**",
          "dynamicLinks": true
        }
      ]
    }
    

    ऊपर दिए गए कॉन्फ़िगरेशन की मदद से, यूआरएल प्रीफ़िक्स के साथ डाइनैमिक लिंक बनाए जा सकते हैं. इन उदाहरणों के बारे में यहां बताया गया है:

    https://your-domain/promos/link-suffix
    https://your-domain/links/share/link-suffix
    

    अगर इस डोमेन का इस्तेमाल सिर्फ़ डाइनैमिक लिंक के लिए किया जाता है, तो /** के सोर्स पाथ का इस्तेमाल करके, बिना पाथ प्रीफ़िक्स के डाइनैमिक लिंक बनाए जा सकते हैं:

    {
      "source": "/**",
      "dynamicLinks": true
    }
    

    ऊपर दिए गए नियम का इस्तेमाल करके, डाइनैमिक लिंक बनाए जा सकते हैं. इसका उदाहरण नीचे दिया गया है:

    https://your-domain/link-suffix

  4. होस्ट करने से जुड़े कॉन्फ़िगरेशन के बदलाव लागू करें:

    firebase deploy --only hosting

    (ज़रूरी नहीं) Hosting REST API का इस्तेमाल करके, डिप्लॉय किए गए firebase.json कॉन्टेंट की जांच की जा सकती है.

  5. सिर्फ़ iOS के लिए: अपने Xcode प्रोजेक्ट की Info.plist फ़ाइल में, FirebaseDynamicLinksCustomDomains नाम की एक कुंजी बनाएं और उसे अपने ऐप्लिकेशन के डाइनैमिक लिंक के यूआरएल प्रीफ़िक्स पर सेट करें. उदाहरण के लिए:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/promos</string>
      <string>https://example.com/links/share</string>
    </array>
    

डाइनैमिक लिंक और होस्टिंग के लिए प्राथमिकता का क्रम

डाइनैमिक लिंक के लिए, खास तौर पर होस्टिंग प्रायॉरिटी ऑर्डर का ध्यान रखें.

  • पक्का करें कि आपके डाइनैमिक लिंक के यूआरएल का प्रीफ़िक्स, ऊंची प्राथमिकता वाले होस्टिंग कॉन्फ़िगरेशन से मेल न खाता हो. उदाहरण के लिए, होस्ट किए गए स्टैटिक कॉन्टेंट को दोबारा लिखने की जगह, हमेशा प्राथमिकता दी जाती है.
  • rewrites एट्रिब्यूट में, होस्टिंग रिस्पॉन्स, अनुरोध किए गए पाथ को कैप्चर करने वाले पहले source ग्लोब के नियम के मुताबिक होगा.

उदाहरण के लिए, अगर आपने your-domain/source-path/link-suffix के लिए डाइनैमिक लिंक सेट अप किया है, लेकिन your-domain/source-path/index.html में भी आपके पास स्टैटिक कॉन्टेंट है, तो उसमें स्टैटिक कॉन्टेंट को प्राथमिकता दी जाती है. असली उपयोगकर्ता को डाइनैमिक लिंक के बजाय index.html दिखेगा. इसी तरह, अगर आपके पास your-domain/source-path/link-suffix में स्टैटिक कॉन्टेंट है, तो असली उपयोगकर्ता को डाइनैमिक लिंक के बजाय स्टैटिक कॉन्टेंट दिखेगा.

अगर आपको डाइनैमिक लिंक और होस्टिंग, दोनों के लिए एक ही ब्रैंडिंग का इस्तेमाल करना है, तो अपने डाइनैमिक लिंक के यूआरएल प्रीफ़िक्स के लिए इनमें से कोई एक विकल्प आज़माएं:

  • पाथ के प्रीफ़िक्स से मेल खाने के लिए, source एट्रिब्यूट को सेट करें. उदाहरण के लिए, अगर आपके पास example.com का कस्टम डोमेन है, तो इसे रीराइट करने का नियम यह हो सकता है:

    // Domain is example.com
    "rewrites": [ {
      "source": "/links/**",  // Dynamic Links start with "https://example.com/links/"
      "dynamicLinks": true
    } ]
    
  • डाइनैमिक लिंक के लिए इस्तेमाल किया जाने वाला एक सबडोमेन सेट अप करें. इसके बाद, उस सबडोमेन से मेल खाने के लिए, source एट्रिब्यूट को सेट करें. उदाहरण के लिए, अगर आपके पास links.example.com का सबडोमेन है, तो इसे रीराइट करने का नियम यह हो सकता है:

    // Domain is links.example.com
    "rewrites": [ {
      "source": "/**",  // Dynamic Links start with "https://links.example.com/"
      "dynamicLinks": true
    } ]