คุณตั้งค่าไซต์โฮสติ้ง Firebase หนึ่งไซต์ขึ้นไปในโครงการ Firebase เดียวได้ เนื่องจากไซต์ทั้งหมดอยู่ในโครงการ Firebase เดียวกัน ไซต์ทั้งหมดจึงสามารถเข้าถึงทรัพยากร Firebase อื่น ๆ ของโครงการได้
- แต่ละไซต์มี การกำหนดค่าโฮสติ้ง ของตัวเอง
- แต่ละไซต์โฮสต์คอลเลกชันเนื้อหาของตนเอง
- แต่ละไซต์สามารถมี โดเมนที่เกี่ยวข้องได้ ตั้งแต่หนึ่งโดเมนขึ้นไป
ด้วยการตั้งค่าไซต์โฮสติ้งหลายไซต์ในโครงการ Firebase เดียวกัน คุณสามารถแชร์ทรัพยากร Firebase ระหว่างไซต์และแอปที่เกี่ยวข้องได้ง่ายขึ้น ตัวอย่างเช่น หากคุณตั้งค่าบล็อก แผงการดูแลระบบ และแอปสาธารณะเป็นแต่ละไซต์ในโครงการ Firebase เดียวกัน ไซต์ทั้งหมดสามารถใช้ฐานข้อมูลผู้ใช้ Firebase Authentication ร่วมกันได้ ในขณะเดียวกันก็มีโดเมนหรือเนื้อหาเฉพาะของตนเอง
ขั้นตอนที่ 1 : อัปเดตเวอร์ชัน Firebase CLI ของคุณ
เข้าถึงฟีเจอร์โฮสติ้งของ Firebase ล่าสุดโดย อัปเดต 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 | ให้บริการเนื้อหาการโฮสต์และการกำหนดค่าของไซต์การโฮสต์ที่ระบุที่ URL ที่โฮสต์ในเครื่อง |