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

Dynamic Links के ब्रैंडिंग पर ज़्यादा कंट्रोल पाने के लिए, page.link सबडोमेन के बजाय, अपना डोमेन इस्तेमाल किया जा सकता है. कस्टम डोमेन की मदद से, 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 Link यूआरएल आपके वेब यूआरएल से मेल न खाएं. जब Dynamic Links को किसी खास यूआरएल प्रीफ़िक्स का इस्तेमाल करने के लिए कॉन्फ़िगर किया जाता है, तो उस प्रीफ़िक्स से शुरू होने वाले सभी यूआरएल को 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. Dynamic Links कंसोल का पेज खोलेंFirebase.

  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. CLIFirebase के सबसे नए वर्शन पर अपडेट करें (वर्शन 6.5.0 या इसके बाद के वर्शन).

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

    • 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 ग्लोब से तय किया गया है जो अनुरोध किए गए पाथ को कैप्चर करता है.

उदाहरण के लिए, अगर आपने Dynamic Link के लिए your-domain/source-path/link-suffix सेट अप किया है, लेकिन आपके पास 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
    } ]
    
  • डाइनैमिक लिंक के लिए इस्तेमाल करने के लिए, कोई सबडोमेन सेट अप करें. इसके बाद, अपने source एट्रिब्यूट को उस सबडोमेन से मेल खाने के लिए सेट करें.Dynamic Links उदाहरण के लिए, अगर आपके पास links.example.com का कोई सबडोमेन है, तो आपका फिर से लिखने का नियम यह हो सकता है:

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