یک دامنه سفارشی برای پیوندهای پویا تنظیم کنید

شما می‌توانید با استفاده از دامنه خودتان به جای زیر دامنه 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

بخشی از URL که قبل از link-suffix قرار دارد، پیشوند URL نامیده می‌شود و شامل دامنه‌ی Dynamic Link سفارشی شما و پیشوند مسیر است. هنگام ایجاد Dynamic Links ، باید پیشوند URL را ارائه دهید.

راه‌اندازی یک دامنه سفارشی نیاز به مجوز ویرایشگر یا مالک در پروژه Firebase شما دارد.

استفاده از دامنه وب شما برای Dynamic Links

شما می‌توانید از یک دامنه برای Dynamic Links و صفحات وب، پیوندهای جهانی و پیوندهای برنامه خود استفاده کنید، اما اگر این کار را انجام دهید، باید مراقب باشید که URLهای Dynamic Link شما با URLهای وب شما تداخل نداشته باشند. وقتی Dynamic Links برای استفاده از یک پیشوند URL خاص پیکربندی می‌کنید، تمام URLهایی که با آن پیشوند شروع می‌شوند به عنوان Dynamic Links در نظر گرفته می‌شوند، بنابراین نمی‌توانید از URLهایی با آن پیشوند برای اشاره به محتوای میزبانی شده معمولی استفاده کنید.

برای مثال، اگر می‌خواهید یک Dynamic Link به منبع https://example.com/my-resource (یک صفحه وب، پیوند جهانی یا پیوند برنامه) ایجاد کنید، نمی‌توانید از https://example.com/ به عنوان پیشوند URL Dynamic Links استفاده کنید، زیرا انجام این کار باعث می‌شود https://example.com/my-resource به عنوان یک Dynamic Link در نظر گرفته شود. در عوض، باید از یک پیشوند URL با دامنه یا پیشوند مسیر متفاوت استفاده کنید.

بنابراین، Dynamic Links بلند زیر (و لینک‌های کوتاه معادل) آنطور که در نظر گرفته شده کار نمی‌کنند زیرا URLهای مشخص شده توسط پارامتر link با پیشوند URL 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 بلند زیر (و لینک‌های کوتاه معادل) می‌توانند کار کنند، زیرا پیشوندهای URL با URLهای 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 برای پروژه خود تنظیم نکرده‌اید، صفحه Hosting کنسول Firebase را باز کنید، روی Get Started کلیک کنید و دستورالعمل‌های راه‌اندازی را دنبال کنید. در حال حاضر لازم نیست مراحل ذکر شده را انجام دهید.

  2. صفحه Dynamic Links را در کنسول Firebase باز کنید.

  3. اگر قبلاً Dynamic Links استفاده نکرده‌اید، روی «شروع به کار» کلیک کنید. در غیر این صورت، از منوی کشویی روی «افزودن پیشوند URL» کلیک کنید.

    سپس، جادوگر راه‌اندازی را تکمیل کنید و دامنه و پیشوند مسیری را که می‌خواهید هنگام درخواست استفاده کنید، مشخص کنید.

  4. فقط iOS : در فایل Info.plist پروژه Xcode خود، یک کلید به نام FirebaseDynamicLinksCustomDomains ایجاد کنید و آن را روی پیشوندهای URL 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 CLI (نسخه ۶.۵.۰ یا بالاتر) به‌روزرسانی کنید .

  3. سایت Hosting خود را برای Dynamic Links در فایل firebase.json پروژه خود پیکربندی کنید. اگر پروژه شما چندین سایت دارد، حتماً سایت متصل به دامنه مورد نظر خود را پیکربندی کنید.

    • appAssociation روی AUTO تنظیم کنید. با این تنظیم، Hosting به صورت پویا فایل‌های assetlinks.json و apple-app-site-association را در صورت درخواست تولید می‌کند.

    • با تنظیم قوانین بازنویسی و مقداردهی dynamicLinks روی true ، پیشوندهای مسیری را که می‌خواهید برای Dynamic Links استفاده کنید، مشخص کنید. درخواست‌های ارسالی به این مسیرها به Dynamic Links پروکسی می‌شوند.

      برخلاف قوانینی که مسیرها را به URLها بازنویسی می‌کنند، قوانین بازنویسی Dynamic Link نمی‌توانند شامل عبارات منظم باشند.

      اگر چندین قانون بازنویسی برای سایت خود دارید، توجه داشته باشید که Hosting اولین قانون بازنویسی را که با درخواست مطابقت دارد، اجرا می‌کند.

    برای مثال:

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

    با پیکربندی بالا، می‌توانید Dynamic Links با پیشوندهای URL مانند مثال‌های زیر ایجاد کنید:

    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 : در فایل Info.plist پروژه Xcode خود، یک کلید به نام FirebaseDynamicLinksCustomDomains ایجاد کنید و آن را روی پیشوندهای URL 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 ، به ویژه از ترتیب اولویت میزبانی آگاه باشید.

  • مطمئن شوید که پیشوند URL Dynamic Links شما با پیکربندی‌های میزبانی با اولویت بالاتر تداخل نداشته باشد (برای مثال، محتوای استاتیک میزبانی شده همیشه نسبت به بازنویسی‌ها اولویت دارد).
  • در داخل ویژگی rewrites ، پاسخ Hosting از قاعده‌ای که توسط اولین glob 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 استفاده کنید، یکی از گزینه‌های زیر را برای پیشوند URL 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
    } ]