Check out what’s new from Firebase at Google I/O 2022. 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 उपसर्ग प्रदान करना होगा।

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

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

आप अपने डायनामिक लिंक और अपने वेब पेज, युनिवर्सल लिंक और ऐप लिंक के लिए उसी डोमेन का उपयोग कर सकते हैं, लेकिन यदि आप ऐसा करते हैं, तो आपको इस बात का ध्यान रखना चाहिए कि आपके डायनामिक लिंक 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

Firebase कंसोल में एक कस्टम डोमेन सेट करें

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

  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 होस्टिंग के साथ सेट करने में आपकी स्थानीय प्रोजेक्ट निर्देशिका में कॉन्फ़िगरेशन फ़ाइल firebase.json बनाना शामिल है।

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

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

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

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

      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

    (वैकल्पिक) आप 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
    } ]