ตั้งค่าโดเมนที่กำหนดเองสำหรับลิงก์แบบไดนามิก

คุณสามารถควบคุมการสร้างแบรนด์ของ 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

ส่วนของ URL ก่อน link-suffix เรียกว่า คำนำหน้า URL ซึ่งประกอบด้วยทั้งโดเมน Dynamic Link ที่กำหนดเองและคำนำหน้าเส้นทาง คุณจะต้อง ระบุคำนำหน้า URL เมื่อสร้าง Dynamic Links

การตั้งค่าโดเมนที่กำหนดเองต้องได้รับสิทธิ์ผู้แก้ไขหรือเจ้าของในโปรเจ็กต์ Firebase

การใช้โดเมนเว็บสำหรับ Dynamic Links

คุณสามารถใช้โดเมนเดียวกันสำหรับDynamic Linksและหน้าเว็บ, Universal Link และ App Link ได้ แต่หากทำเช่นนั้น คุณต้องตรวจสอบว่า URL ของDynamic Linkไม่ขัดแย้งกับ URL เว็บ เมื่อคุณกำหนดค่าDynamic Linksให้ใช้ คำนำหน้า URL ที่เฉพาะเจาะจง ระบบจะถือว่า URL ทั้งหมดที่ขึ้นต้นด้วยคำนำหน้านั้นเป็น Dynamic Links ดังนั้นคุณจึงไม่สามารถใช้ URL ที่มีคำนำหน้านั้นเพื่อชี้ไปยังเนื้อหาที่โฮสต์ ทั่วไปได้

ตัวอย่างเช่น หากต้องการสร้าง Dynamic Link ไปยังแหล่งข้อมูล https://example.com/my-resource (หน้าเว็บ, Universal Link หรือ App Link) คุณ จะใช้ 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 แล้วคลิก เริ่มต้นใช้งาน จากนั้นทำตามวิธีการตั้งค่า คุณไม่จำเป็นต้องทำตามขั้นตอนที่ระบุให้เสร็จสมบูรณ์ในตอนนี้

  2. เปิดหน้าของคอนโซลDynamic LinksFirebase

  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 เวอร์ชันล่าสุด (v6.5.0 ขึ้นไป)

  3. กำหนดค่าเว็บไซต์ Hosting สำหรับ Dynamic Links ในไฟล์ firebase.json ของโปรเจ็กต์ หากโปรเจ็กต์มีหลายเว็บไซต์ ให้กำหนดค่าเว็บไซต์ที่เชื่อมต่อกับโดเมนที่ต้องการใช้

    • ตั้งค่า appAssociation เป็น AUTO การตั้งค่านี้จะทำให้ Hosting สร้าง assetlinks.json และ apple-app-site-association ไฟล์แบบไดนามิกเมื่อมีการขอ

    • ระบุคำนำหน้าเส้นทางที่ต้องการใช้สำหรับ Dynamic Links โดยตั้งค่ากฎการเขียนใหม่ ด้วย dynamicLinks ที่ตั้งค่าเป็น true ระบบจะพร็อกซีคำขอไปยังเส้นทางเหล่านี้ไปยัง Dynamic Links

      กฎการเขียนใหม่ของ Dynamic Link ไม่สามารถ มีนิพจน์ทั่วไปได้ ซึ่งต่างจากกฎที่เขียนเส้นทางใหม่เป็น URL

      หากคุณมีกฎการเขียนใหม่หลายกฎสำหรับเว็บไซต์ โปรดทราบว่า 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เนื้อหาคงที่จะมีความสำคัญมากกว่า ผู้ใช้ปลายทางจะเห็น index.html แทน ที่ Dynamic Link ในทำนองเดียวกัน หากคุณมีเนื้อหาคงที่อยู่ที่ 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
    } ]