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

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

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

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

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

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

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

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

लेकिन निम्नलिखित लंबे प्रारूप वाले डायनामिक लिंक (और समकक्ष छोटे लिंक) काम कर सकते हैं, क्योंकि यूआरएल उपसर्ग 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

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

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

  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 पर सेट करके पुनः लिखने के नियमों को सेट करके उन पथ उपसर्गों को निर्दिष्ट करें जिन्हें आप डायनेमिक लिंक्स के लिए उपयोग करना चाहते हैं। इन पथों के अनुरोध डायनेमिक लिंक पर प्रॉक्सी हो जाते हैं।

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

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

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

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

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

    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>
    

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

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

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

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

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

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