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

คุณสามารถควบคุมการสร้างแบรนด์ของ 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 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 เวอร์ชันล่าสุด (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
    } ]