คุณสามารถตั้งค่าไซต์โฮสติ้ง Firebase อย่างน้อย 1 ไซต์ในโปรเจ็กต์ 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 ที่โฮสต์ในเครื่อง |