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

आप 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 बनाना है, तो Dynamic Links यूआरएल प्रीफ़िक्स के तौर पर https://example.com/ का इस्तेमाल नहीं किया जा सकता. ऐसा करने पर, 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 फ़ाइल में, Hosting साइट को Dynamic Links के लिए कॉन्फ़िगर करें. अगर आपके प्रोजेक्ट में एक से ज़्यादा साइटें हैं, तो उस डोमेन से जुड़ी साइट को कॉन्फ़िगर करना न भूलें जिसका आपको इस्तेमाल करना है.

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

    • फिर से लिखने के नियमों को dynamicLinks पर सेट करके true पर सेट करके वे पथ उपसर्ग तय करें, जिन्हें आप Dynamic Links के लिए इस्तेमाल करना चाहते हैं. इन पाथ के लिए किए गए अनुरोध, 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
    } ]