คุณสามารถควบคุมการสร้างแบรนด์ของ 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 LinksFirebase
หากยังไม่เคยใช้ 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 } ]