คุณตั้งค่าไซต์โฮสติ้ง Firebase อย่างน้อย 1 แห่งในโปรเจ็กต์ Firebase เดียวได้ เนื่องจากไซต์ทั้งหมดอยู่ในโปรเจ็กต์ Firebase เดียวกัน ไซต์ทั้งหมดจึงสามารถเข้าถึงทรัพยากร Firebase อื่นๆ ของโปรเจ็กต์ได้
- แต่ละไซต์มีการ กำหนดค่าโฮสติ้ง ของตัวเอง
- แต่ละไซต์โฮสต์คอลเลกชันเนื้อหาของตนเอง
- แต่ละไซต์สามารถมี โดเมนที่เกี่ยวข้องได้ตั้งแต่หนึ่งโดเมน ขึ้นไป
ด้วยการตั้งค่าไซต์โฮสติ้งหลายไซต์ภายในโปรเจ็กต์ Firebase เดียวกัน คุณสามารถแชร์ทรัพยากร Firebase ระหว่างไซต์และแอปที่เกี่ยวข้องได้ง่ายขึ้น ตัวอย่างเช่น หากคุณตั้งค่าบล็อก แผงการดูแลระบบ และแอปสาธารณะเป็นไซต์แต่ละไซต์ในโครงการ Firebase เดียวกัน ไซต์ทั้งหมดจะแชร์ฐานข้อมูลผู้ใช้การตรวจสอบสิทธิ์ของ Firebase เดียวกันได้ ในขณะที่มีโดเมนหรือเนื้อหาเฉพาะของตนเอง
ขั้นตอนที่ 1 : อัปเดตเวอร์ชัน Firebase CLI ของคุณ
เข้าถึงคุณสมบัติ Firebase Hosting ล่าสุดโดย อัปเดตเป็นเวอร์ชันล่าสุดของ Firebase CLI
ขั้นตอนที่ 2 : เพิ่มไซต์เพิ่มเติม
เพิ่มไซต์เพิ่มเติมในโครงการ Firebase โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
ใช้เวิร์กโฟลว์ใน หน้าการโฮสต์ ของคอนโซล Firebase
ใช้คำสั่ง Firebase CLI:
firebase hosting:sites:create SITE_ID
ใช้ Hosting REST API:
projects.sites.create
สำหรับแต่ละวิธีเหล่านี้ คุณจะต้องระบุ SITE_ID
ซึ่งใช้ในการสร้างโดเมนย่อยเริ่มต้นที่ Firebase จัดเตรียมไว้สำหรับไซต์:
-
SITE_ID .web.app
-
SITE_ID .firebaseapp.com
เนื่องจากมีการใช้ SITE_ID
สำหรับ URL เหล่านี้ รหัสไซต์จึงมีข้อกำหนดดังต่อไปนี้:
- ต้องเป็นป้ายกำกับชื่อโฮสต์ที่ถูกต้อง ซึ่งหมายความว่าต้องไม่มี
.
,_
, ฯลฯ. - ต้องมีอักขระไม่เกิน 30 ตัว
- ต้องไม่ซ้ำกันทั่วโลกภายใน Firebase
ในแต่ละไซต์ คุณสามารถ เพิ่มโดเมนที่กำหนดเอง เพื่อให้บริการเนื้อหาและการกำหนดค่าเดียวกันสำหรับ URL หลายรายการได้
ลบไซต์รอง
ลบไซต์ที่ไม่ต้องการออกจากโปรเจ็กต์ Firebase โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
ใช้เวิร์กโฟลว์ใน หน้าการโฮสต์ ของคอนโซล Firebase
ใช้คำสั่ง Firebase CLI:
firebase hosting:sites:delete SITE_ID
ใช้ Hosting REST API:
projects.sites.delete
โปรดทราบว่าคุณไม่สามารถลบไซต์เริ่มต้นซึ่งมี SITE_ID
เดียวกันกับรหัสโปรเจ็กต์ Firebase ของคุณ
ขั้นตอนที่ 3 : ตั้งค่าเป้าหมายการปรับใช้สำหรับไซต์ของคุณ
เมื่อคุณมีหลายไซต์และเรียกใช้คำสั่งการปรับใช้ Firebase CLI CLI จำเป็นต้องมีวิธีในการสื่อสารว่าการตั้งค่าใดควรปรับใช้กับแต่ละไซต์ ด้วย เป้าหมายการทำให้ใช้งาน ได้ คุณสามารถระบุไซต์ เฉพาะเจาะจง ด้วย TARGET_NAME
ใน ไฟล์การกำหนดค่า firebase.json
และใน คำสั่ง Firebase CLI สำหรับการทดสอบหรือปรับใช้กับไซต์ของคุณ
ในการสร้างเป้าหมายการปรับใช้และใช้ TARGET_NAME
กับไซต์โฮสติ้ง ให้เรียกใช้คำสั่ง CLI ต่อไปนี้จากรูทของไดเรกทอรีโครงการของคุณ:
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
โดยที่พารามิเตอร์คือ:
TARGET_NAME — ชื่อเฉพาะ (ที่คุณกำหนดเอง) สำหรับไซต์โฮสติ้งที่คุณกำลังปรับใช้
RESOURCE_IDENTIFIER —
SITE_ID
สำหรับไซต์โฮสติ้ง ตามที่ระบุไว้ในโครงการ Firebase ของคุณ
ตัวอย่างเช่น หากคุณสร้างสองไซต์ ( myapp-blog
และ myapp-app
) ในโครงการ Firebase คุณสามารถใช้ TARGET_NAME
( blog
และ app
ตามลำดับ) ที่ไม่ซ้ำกันกับแต่ละไซต์ได้โดยการเรียกใช้คำสั่งต่อไปนี้:
firebase target:apply hosting blog myapp-blog
firebase target:apply hosting app myapp-app
การตั้งค่าสำหรับเป้าหมายการปรับใช้จะถูกเก็บไว้ในไฟล์ . .firebaserc
ในไดเรกทอรีโปรเจ็กต์ของคุณ ดังนั้นคุณจึงจำเป็นต้องตั้งค่าเป้าหมายการปรับใช้เพียงครั้งเดียวต่อโปรเจ็กต์
ขั้นตอนที่ 4 : กำหนดการกำหนดค่าโฮสต์สำหรับแต่ละไซต์
ใช้ TARGET_NAME
ของไซต์เมื่อคุณกำหนดค่าการโฮสต์ในไฟล์ firebase.json
หากไฟล์
firebase.json
ของคุณกำหนดการกำหนดค่าสำหรับหลายไซต์ ให้ใช้รูปแบบอาร์เรย์:{ "hosting": [ { "target": "blog", // "blog" is the applied TARGET_NAME for the Hosting site "myapp-blog" "public": "blog/dist", // contents of this folder are deployed to the site "myapp-blog" // ... }, { "target": "app", // "app" is the applied TARGET_NAME for the Hosting site "myapp-app" "public": "app/dist", // contents of this folder are deployed to the site "myapp-app" // ... "rewrites": [...] // You can define specific Hosting configurations for each site } ] }
หากไฟล์
firebase.json
กำหนดการกำหนดค่าสำหรับไซต์เดียวเท่านั้น ไม่จำเป็นต้องใช้รูปแบบอาร์เรย์:{ "hosting": { "target": "blog", "public": "dist", // ... "rewrites": [...] } }
ขั้นตอนที่ 5 : ทดสอบในเครื่อง ดูตัวอย่างการเปลี่ยนแปลง และปรับใช้กับเว็บไซต์ของคุณ
รันคำสั่งใดๆ ต่อไปนี้จากรูทของไดเร็กทอรีโปรเจ็กต์ในเครื่องของคุณ
สั่งการ | คำอธิบาย |
---|---|
firebase emulators:start --only hosting | จำลองเนื้อหาโฮสติ้งและการกำหนดค่าของไซต์โฮสติ้ง เริ่มต้น ที่ URL ที่โฮสต์ในเครื่อง |
firebase emulators:start --only hosting: TARGET_NAME | จำลองเนื้อหาโฮสติ้งและการกำหนดค่าของไซต์โฮสติ้งที่ระบุที่ URL ที่โฮสต์ในเครื่อง |
firebase hosting:channel:deploy \ | ปรับใช้เนื้อหาโฮสติ้งและการกำหนดค่าของไซต์โฮสติ้ง เริ่มต้น ที่ URL แสดงตัวอย่าง |
firebase hosting:channel:deploy \ | ปรับใช้เนื้อหาโฮสติ้งและการกำหนดค่าของไซต์โฮสติ้งที่ระบุที่ URL แสดงตัวอย่าง |
firebase deploy --only hosting | ปรับใช้เนื้อหาโฮสติ้งและการกำหนดค่าไปยังช่องทางสดของเว็บไซต์โฮสติ้ง ทั้งหมด ที่กำหนดค่าใน firebase.json |
firebase deploy --only hosting: TARGET_NAME | ปรับใช้เนื้อหาโฮสติ้งและการกำหนดค่าไปยังช่องทางสดของไซต์โฮสติ้งที่ระบุ |
สั่งการ | คำอธิบาย |
---|---|
(ไม่แนะนำ ใช้ emulators:start แทน)firebase serve --only hosting | ให้บริการเนื้อหาโฮสติ้งและการกำหนดค่าของเว็บไซต์โฮสติ้ง เริ่มต้น ที่ URL ที่โฮสต์ในเครื่อง |
(ไม่แนะนำ ใช้ emulators:start แทน)firebase serve --only hosting: TARGET_NAME | ให้บริการเนื้อหา Hosting และการกำหนดค่าของเว็บไซต์ Hosting ที่ระบุที่ URL ที่โฮสต์ในเครื่อง |