คุณสามารถควบคุมการสร้างแบรนด์ของ 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 โดยทำดังนี้
หากยังไม่ได้ตั้งค่า Firebase Hosting สำหรับโปรเจ็กต์ ให้เปิดหน้า Hosting ของคอนโซล Firebase คลิกเริ่มต้นใช้งาน แล้วคลิกผ่านวิธีการตั้งค่า คุณไม่จำเป็นต้องทำตามขั้นตอนที่ระบุในขณะนี้
เปิดหน้า Dynamic Links ของคอนโซล Firebase
หากยังไม่เคยใช้ Dynamic Links มาก่อน ให้คลิกเริ่มต้นใช้งาน หรือคลิกเพิ่มคำนำหน้า URL จากเมนูแบบเลื่อนลง
จากนั้นดำเนินการตามวิซาร์ดการตั้งค่าให้เสร็จสมบูรณ์ โดยระบุโดเมนและคำนำหน้าเส้นทางที่ต้องการใช้เมื่อได้รับข้อความแจ้ง
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 อยู่แล้ว คุณจะต้องตั้งค่าโดเมนที่กำหนดเองด้วยตนเอง
วิธีการมีดังนี้
เชื่อมต่อโดเมนกับ Firebase Hosting หากยังไม่ได้ทำ
การตั้งค่าโดเมนด้วย Firebase Hosting รวมถึงการสร้างไฟล์การกำหนดค่า
firebase.jsonในไดเรกทอรีโปรเจ็กต์ที่อยู่ในเครื่องอัปเดตเป็น Firebase CLI เวอร์ชันล่าสุด (v6.5.0 ขึ้นไป)
กำหนดค่าเว็บไซต์ 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
ติดตั้งใช้งานการเปลี่ยนแปลงการกำหนดค่า Hosting โดยทำดังนี้
firebase deploy --only hosting
(ไม่บังคับ) คุณสามารถตรวจสอบเนื้อหา
firebase.jsonที่ติดตั้งใช้งานได้โดยใช้ Hosting REST APIiOS เท่านั้น: ในไฟล์
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 จะเป็นไปตามกฎที่ระบุโดย globsourceแรกที่จับเส้นทางที่ขอ
ตัวอย่างเช่น หากคุณตั้งค่า 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 } ]