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

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

ส่วนที่อยู่ก่อน 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
    } ]