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

คุณสามารถควบคุมการสร้างแบรนด์ของลิงก์แบบไดนามิกของคุณได้ดียิ่งขึ้นโดยใช้โดเมนของคุณเองแทนโดเมนย่อยของ 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

ส่วนของ URL ก่อน link-suffix เรียกว่า คำนำหน้า URL และมีทั้งโดเมนลิงก์แบบไดนามิกที่คุณกำหนดเองและคำนำหน้าเส้นทาง คุณจะต้องระบุคำนำหน้า URL เมื่อคุณสร้างลิงก์แบบไดนามิก

การตั้งค่าโดเมนที่กำหนดเองต้องได้รับอนุญาตจากผู้แก้ไขหรือเจ้าของในโครงการ Firebase ของคุณ

การใช้โดเมนเว็บของคุณสำหรับลิงก์แบบไดนามิก

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

ตัวอย่างเช่น หากคุณต้องการสร้างลิงก์แบบไดนามิกไปยังทรัพยากร https://example.com/my-resource (หน้าเว็บ, Universal Link หรือ App Link) คุณจะใช้ https://example.com/ ไม่ได้ https://example.com/ เป็นคำนำหน้า URL ของลิงก์แบบไดนามิก เนื่องจากการทำเช่นนั้นจะทำให้ https://example.com/my-resource ถือเป็นลิงก์แบบไดนามิก คุณต้องใช้คำนำหน้า URL กับโดเมนอื่นหรือคำนำหน้าเส้นทางอื่นแทน

ดังนั้น ลิงก์ไดนามิกแบบยาวต่อไปนี้ (และลิงก์แบบสั้นที่เทียบเท่า) จะไม่ทำงานตามที่ตั้งใจไว้ เนื่องจาก URL ที่ระบุโดยพารามิเตอร์ link เริ่มต้นด้วยคำนำหน้า URL ของลิงก์แบบไดนามิก https://example.com/ :

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

แต่ลิงก์แบบไดนามิกแบบยาวต่อไปนี้ (และลิงก์แบบสั้นที่เทียบเท่า) สามารถใช้งานได้ เนื่องจากคำนำหน้า 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. เปิด หน้าลิงก์แบบไดนามิก ของคอนโซล Firebase

  3. หากคุณไม่เคยใช้ลิงก์แบบไดนามิกมาก่อน คลิก เริ่มต้นใช้งาน หรือคลิก เพิ่มคำนำหน้า URL จากเมนูแบบเลื่อนลง

    จากนั้น ดำเนินการตามวิซาร์ดการตั้งค่าให้เสร็จสิ้น โดยระบุโดเมนและคำนำหน้าเส้นทางที่คุณต้องการใช้เมื่อได้รับแจ้ง

  4. iOS เท่านั้น : ในไฟล์ Info.plist ของโปรเจ็กต์ Xcode ให้สร้างคีย์ชื่อ FirebaseDynamicLinksCustomDomains และตั้งค่าเป็นคำนำหน้า URL ลิงก์แบบไดนามิกของแอป ตัวอย่างเช่น:

    <key>FirebaseDynamicLinksCustomDomains</key>
    <array>
      <string>https://example.com/link</string>
      <string>https://example.com/promos</string>
    </array>
    

ตั้งค่าโดเมนที่กำหนดเองด้วยตนเอง

ในบางสถานการณ์ เช่น เมื่อคุณได้ตั้งค่าโดเมนแบบกำหนดเองสำหรับลิงก์แบบไดนามิกแล้วและต้องการเพิ่มโดเมนอื่น หรือเมื่อคุณเพิ่มโดเมนที่เชื่อมต่อกับไซต์โฮสติ้งอยู่แล้ว คุณจะต้องตั้งค่าโดเมนแบบกำหนดเองของคุณด้วยตนเอง

โดยทำดังนี้:

  1. เชื่อมต่อโดเมนของคุณกับโฮสติ้ง Firebase หากคุณยังไม่ได้ดำเนินการ

    การตั้งค่าโดเมนของคุณด้วย Firebase Hosting รวมถึงการสร้างไฟล์การกำหนดค่า firebase.json ในไดเรกทอรีโปรเจ็กต์ในเครื่องของคุณ

  2. อัปเดตเป็นเวอร์ชันล่าสุดของ Firebase CLI (v6.5.0 หรือใหม่กว่า)

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

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

    • ระบุคำนำหน้าเส้นทางที่คุณต้องการใช้สำหรับลิงก์แบบไดนามิกโดยการตั้งค่ากฎการเขียนใหม่โดยตั้งค่า dynamicLinks เป็น true คำขอไปยังเส้นทางเหล่านี้จะถูกส่งไปยังไดนามิกลิงก์

      ต่างจากกฎที่เขียนเส้นทางไปยัง 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

    (ไม่บังคับ) คุณสามารถตรวจสอบเนื้อหา firebase.json ที่ปรับใช้ได้โดยใช้ Hosting REST API

  5. iOS เท่านั้น : ในไฟล์ Info.plist ของโปรเจ็กต์ Xcode ให้สร้างคีย์ชื่อ 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
    } ]