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

คุณสามารถควบคุม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. อัปเดต FirebaseCLI เป็นเวอร์ชันล่าสุด (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 โปรดทราบถึงลำดับความสำคัญในการโฮสต์

  • ตรวจสอบว่าDynamic Links คำนำหน้า URL ไม่ขัดแย้งกับการกำหนดค่าการโฮสต์ที่มีลำดับความสำคัญสูงกว่า (เช่น เนื้อหาสแตติกที่โฮสต์จะมีลำดับความสำคัญสูงกว่าการเขียนใหม่เสมอ)
  • ภายในแอตทริบิวต์ 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
    } ]