Catch up on everthing we announced at this year's Firebase Summit. Learn more

ตั้งค่าโดเมนที่กำหนดเองสำหรับ Dynamic Links

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

การใช้โดเมนเว็บของคุณสำหรับ Dynamic Links

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

ตัวอย่างเช่นถ้าคุณต้องการสร้างการเชื่อมโยงแบบไดนามิกทรัพยากร https://example.com/my-resource (หน้าเว็บ, ยูนิเวอร์แซเชื่อมโยงหรือ App เชื่อมโยง) คุณจะไม่สามารถใช้ 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 ไม่ได้ขัดแย้งกับ link URL ที่:

 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 ของ Firebase คอนโซลคลิกเริ่มต้นและคลิกผ่านคำแนะนำการติดตั้ง คุณไม่จำเป็นต้องทำตามขั้นตอนที่ระบุในตอนนี้

  2. เปิด หน้าเว็บแบบไดนามิกลิงค์ ของคอนโซล Firebase

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

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

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

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

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

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

ในการทำเช่นนั้น:

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

    การตั้งค่าโดเมนของคุณกับ Firebase โฮสติ้งรวมถึงการสร้างแฟ้มการกำหนดค่า firebase.json ในไดเรกทอรีโครงการท้องถิ่นของคุณ

  2. อัปเดตเป็นรุ่นล่าสุดของ Firebase CLI (v6.5.0 หรือหลังจากนั้น)

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

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

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

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

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

    ตัวอย่างเช่น:

    "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 เนื้อหาโดยใช้ REST API โฮสติ้ง

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

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

ลำดับความสำคัญสำหรับ Dynamic Links และ Hosting

สำหรับแบบไดนามิกลิงค์โดยเฉพาะอย่างยิ่งตระหนักถึง โฮสติ้งลำดับความสำคัญ

  • ตรวจสอบให้แน่ใจว่าคำนำหน้า URL ลิงก์แบบไดนามิกของคุณไม่ขัดแย้งกับการกำหนดค่าการโฮสต์ที่มีลำดับความสำคัญสูงกว่า (เช่น เนื้อหาคงที่ที่โฮสต์จะมีลำดับความสำคัญมากกว่าการเขียนใหม่เสมอ)
  • ภายใน rewrites แอตทริบิวต์การตอบสนอง Hosting จะเชื่อฟังกฎที่ระบุโดยครั้งแรก source glob ที่จับเส้นทางที่ได้รับการร้องขอ

ตัวอย่างเช่นถ้าคุณตั้งค่าการเชื่อมโยงแบบไดนามิกสำหรับ your-domain / source-path / link-suffix แต่คุณยังมีเนื้อหาแบบคงที่ your-domain / source-path /index.html เนื้อหาแบบคงที่จะมีความสำคัญ ผู้ใช้ปลายจะเห็น index.html มากกว่าการเชื่อมโยงแบบไดนามิก ในทำนองเดียวกันถ้าคุณมีเนื้อหาแบบคงที่ your-domain / source-path / link-suffix แบบ end-ผู้ใช้จะเห็นเนื้อหาแบบคงที่มากกว่าการเชื่อมโยงแบบไดนามิก

หากคุณต้องการใช้แบรนด์เดียวกันสำหรับทั้งลิงก์แบบไดนามิกและโฮสติ้ง ให้พิจารณาตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้สำหรับคำนำหน้า 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
    } ]