Catch up on highlights from Firebase at Google I/O 2023. Learn more

डायनामिक लिंक के लिए एक कस्टम डोमेन सेट करें

आप 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 से पहले URL के भाग को URL उपसर्ग कहा जाता है, और इसमें आपका कस्टम डायनेमिक लिंक डोमेन और पथ उपसर्ग दोनों शामिल होते हैं। डायनेमिक लिंक बनाते समय आपको एक URL उपसर्ग प्रदान करना होगा।

एक कस्टम डोमेन सेट अप करने के लिए आपके फायरबेस प्रोजेक्ट पर संपादक या स्वामी की अनुमति की आवश्यकता होती है।

डायनामिक लिंक्स के लिए अपने वेब डोमेन का उपयोग करना

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

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

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

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

लेकिन निम्नलिखित दीर्घ-रूप वाले डायनेमिक लिंक (और समतुल्य लघु लिंक) काम कर सकते हैं, क्योंकि URL उपसर्ग link URL के साथ विरोध नहीं करते हैं:

 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

फायरबेस कंसोल में एक कस्टम डोमेन सेट करें

आप आमतौर पर फायरबेस कंसोल में पूरी तरह से एक कस्टम डोमेन सेट कर सकते हैं। ऐसा करने के लिए:

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

  2. फायरबेस कंसोल का डायनेमिक लिंक पेज खोलें।

  3. यदि आपने पहले डायनामिक लिंक का उपयोग नहीं किया है, तो प्रारंभ करें पर क्लिक करें। अन्यथा, ड्रॉप-डाउन मेनू से URL उपसर्ग जोड़ें पर क्लिक करें।

    फिर, संकेत दिए जाने पर आप जिस डोमेन और पथ उपसर्ग का उपयोग करना चाहते हैं, उसे निर्दिष्ट करते हुए सेटअप विज़ार्ड को पूरा करें।

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

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

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

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

ऐसा करने के लिए:

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

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

  2. फायरबेस सीएलआई (v6.5.0 या बाद के संस्करण) के नवीनतम संस्करण में अपडेट करें

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

    • appAssociation को AUTO पर सेट करें। इस सेटिंग के साथ, अनुरोध किए जाने पर होस्टिंग गतिशील रूप से assetlinks.json और apple-app-site-association फाइलें उत्पन्न करती है।

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

      URL के पथों को फिर से लिखने वाले नियमों के विपरीत, डायनामिक लिंक पुनर्लेखन नियमों में नियमित अभिव्यक्तियाँ नहीं हो सकतीं।

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

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

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

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

    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

    (वैकल्पिक) आप होस्टिंग REST API का उपयोग करके तैनात firebase.json सामग्री की जांच कर सकते हैं।

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

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

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

डायनामिक लिंक्स के लिए, प्राथमिकता क्रम को होस्ट करने के बारे में विशेष रूप से जागरूक रहें।

  • सुनिश्चित करें कि आपका डायनामिक लिंक URL उपसर्ग उच्च प्राथमिकता वाले होस्टिंग कॉन्फ़िगरेशन के साथ विरोध नहीं करता है (उदाहरण के लिए, होस्ट की गई स्थिर सामग्री को हमेशा पुनर्लेखन पर प्राथमिकता दी जाती है)।
  • rewrites विशेषता के भीतर, होस्टिंग प्रतिक्रिया पहले source ग्लोब द्वारा निर्दिष्ट नियम का पालन करेगी जो अनुरोधित पथ को कैप्चर करता है

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

यदि आप डायनामिक लिंक और होस्टिंग दोनों के लिए एक ही ब्रांडिंग का उपयोग करना चाहते हैं, तो अपने डायनामिक लिंक URL उपसर्ग के लिए निम्न विकल्पों में से एक पर विचार करें:

  • पथ उपसर्ग से मेल खाने के लिए अपनी 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
    } ]