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

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

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 से पहले के यूआरएल के हिस्से को यूआरएल प्रीफ़िक्स कहा जाता है. इसमें आपका कस्टम Dynamic Link डोमेन और पाथ प्रीफ़िक्स, दोनों शामिल होते हैं. Dynamic Links बनाते समय, आपको यूआरएल प्रीफ़िक्स देना होगा.

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

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

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

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

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

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

हालांकि, यहां दिए गए लंबी अवधि वाले Dynamic Links (और मिलते-जुलते शॉर्ट लिंक) काम कर सकते हैं, क्योंकि यूआरएल के प्रीफ़िक्स, 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 Hosting सेट अप नहीं किया है, तो Firebase कंसोल का Hosting पेज खोलें. इसके बाद, शुरू करें पर क्लिक करें और सेटअप के निर्देशों पर क्लिक करें. फ़िलहाल, आपको बताए गए चरणों को पूरा करने की ज़रूरत नहीं है.

  2. Firebase कंसोल का Dynamic Links पेज खोलें.

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

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

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

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

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

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

इसके लिए:

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

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

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

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

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

    • Dynamic Links के लिए इस्तेमाल किए जाने वाले पाथ प्रीफ़िक्स तय करें. इसके लिए, dynamicLinks को true पर सेट करके, रीराइट नियम सेट करें. इन पाथ के लिए किए गए अनुरोध, Dynamic Links पर भेजे जाते हैं.

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

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

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

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

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

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

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

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

    ऊपर दिए गए नियम की मदद से, Dynamic Links को इस उदाहरण की तरह बनाया जा सकता है:

    https://your-domain/link-suffix

  4. Hosting कॉन्फ़िगरेशन में किए गए बदलावों को डिप्लॉय करें:

    firebase deploy --only hosting

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

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

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

Dynamic Links और Hosting के लिए प्राथमिकता का क्रम

Dynamic Links के लिए, होस्टिंग की प्राथमिकता के क्रम के बारे में खास तौर पर ध्यान रखें.

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

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

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

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

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

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