คุณตั้งค่าเว็บไซต์ Firebase Hosting อย่างน้อย 1 เว็บไซต์ในโปรเจ็กต์ Firebase เดียวได้ เนื่องจากเว็บไซต์ทั้งหมดอยู่ในโปรเจ็กต์ Firebase เดียวกัน เว็บไซต์ทั้งหมดจึงเข้าถึงทรัพยากร Firebase อื่นๆ ของโปรเจ็กต์ได้
- แต่ละเว็บไซต์มีการกำหนดค่าโฮสติ้งของตัวเอง
- แต่ละเว็บไซต์จะโฮสต์คอลเล็กชันเนื้อหาของตัวเอง
- แต่ละเว็บไซต์มีโดเมนที่เชื่อมโยงได้มากกว่า 1 รายการ
การตั้งค่าหลายHostingเว็บไซต์ภายในโปรเจ็กต์ Firebase เดียวกันจะช่วยให้คุณแชร์ทรัพยากร Firebase ระหว่างเว็บไซต์และแอปที่เกี่ยวข้องได้ง่ายขึ้น เช่น หากคุณตั้งค่าบล็อก แผงผู้ดูแลระบบ และแอปสาธารณะเป็นเว็บไซต์แต่ละรายการในโปรเจ็กต์ Firebase เดียวกัน ทั้งหมดจะแชร์Firebase Authenticationฐานข้อมูลผู้ใช้เดียวกันได้ ในขณะเดียวกันก็มีโดเมนหรือเนื้อหาที่ไม่ซ้ำกันของตนเอง
ขั้นตอนที่ 1: อัปเดต Firebase CLI เวอร์ชัน
เข้าถึงฟีเจอร์ล่าสุดของ Firebase Hosting โดยอัปเดตเป็น Firebase CLI เวอร์ชันล่าสุด
ขั้นตอนที่ 2: เพิ่มเว็บไซต์อื่นๆ
เพิ่มเว็บไซต์อื่นๆ ลงในโปรเจ็กต์ Firebase โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
ใช้เวิร์กโฟลว์ในหน้าHosting ของคอนโซล Firebase
ใช้Firebaseคำสั่ง CLI ดังนี้
firebase hosting:sites:create SITE_ID
ใช้ HostingREST API:
projects.sites.create
สำหรับแต่ละวิธีเหล่านี้ คุณจะต้องระบุ SITE_ID
ซึ่งใช้ในการสร้าง
โดเมนย่อยเริ่มต้นที่จัดสรรโดย Firebase สำหรับเว็บไซต์
SITE_ID.web.app
SITE_ID.firebaseapp.com
เนื่องจากมีการใช้ SITE_ID
สำหรับ URL เหล่านี้ รหัสเว็บไซต์จึงต้องมีข้อกำหนดต่อไปนี้
- ต้องเป็นป้ายกำกับชื่อโฮสต์ที่ถูกต้อง ซึ่งหมายความว่าต้องไม่มี
.
,_
ฯลฯ - ต้องมีความยาวไม่เกิน 30 อักขระ
- ต้องไม่ซ้ำกันทั่วโลกภายใน Firebase
นอกจากนี้ คุณยังเพิ่มโดเมนที่กำหนดเองเพื่อแสดงเนื้อหาและการกำหนดค่าเดียวกันในหลาย URL ได้ด้วย (ไม่บังคับ)
ลบเว็บไซต์รอง
ลบเว็บไซต์ที่ไม่ต้องการออกจากโปรเจ็กต์ Firebase โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
ใช้เวิร์กโฟลว์ในหน้าHosting ของคอนโซล Firebase
ใช้Firebaseคำสั่ง CLI ดังนี้
firebase hosting:sites:delete SITE_ID
ใช้ HostingREST API:
projects.sites.delete
โปรดทราบว่าคุณไม่สามารถลบเว็บไซต์เริ่มต้นซึ่งมี SITE_ID
เดียวกันกับรหัสโปรเจ็กต์ Firebase ได้
ขั้นตอนที่ 3: ตั้งค่าเป้าหมายการติดตั้งใช้งานสำหรับเว็บไซต์
เมื่อคุณมีหลายเว็บไซต์และเรียกใช้Firebaseคำสั่งการติดตั้งใช้งาน CLI
CLI จะต้องมีวิธีสื่อสารว่าควรติดตั้งใช้งานการตั้งค่าใดในแต่ละเว็บไซต์
เป้าหมายการติดตั้งใช้งานช่วยให้คุณระบุเว็บไซต์ที่เฉพาะเจาะจงได้แบบไม่ซ้ำกันด้วย TARGET_NAME
ในfirebase.json
ไฟล์กำหนดค่า
และในFirebaseคำสั่ง CLI สำหรับ
การทดสอบหรือการติดตั้งใช้งานในเว็บไซต์
หากต้องการสร้างเป้าหมายการทำให้ใช้งานได้และใช้ TARGET_NAME
กับเว็บไซต์ Hosting ให้เรียกใช้คำสั่ง CLI ต่อไปนี้จากรูทของไดเรกทอรีโปรเจ็กต์
firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER
ตำแหน่งของพารามิเตอร์
TARGET_NAME — ชื่อที่ไม่ซ้ำกัน (ที่คุณกำหนดเอง) สำหรับ Hosting เว็บไซต์ที่คุณกำลังจะติดตั้งใช้งาน
RESOURCE_IDENTIFIER —
SITE_ID
สำหรับเว็บไซต์ Hostingตามที่ระบุไว้ในโปรเจ็กต์ Firebase
ตัวอย่างเช่น หากคุณสร้างเว็บไซต์ 2 เว็บ (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 |
เลียนแบบเนื้อหาและการกำหนดค่าของเว็บไซต์ Hosting เริ่มต้น Hosting ที่ URL ที่โฮสต์ในเครื่อง |
firebase emulators:start --only hosting:TARGET_NAME |
เลียนแบบHostingเนื้อหาและการกำหนดค่าของHostingเว็บไซต์ที่ระบุใน URL ที่โฮสต์ในเครื่อง |
firebase hosting:channel:deploy \ |
Hosting เนื้อหาและการกำหนดค่าของเว็บไซต์ default Hosting ที่ URL แสดงตัวอย่าง |
firebase hosting:channel:deploy \ |
ติดตั้งใช้งานHostingเนื้อหาและการกำหนดค่าของเว็บไซต์ที่ระบุ Hostingที่ URL แสดงตัวอย่าง |
firebase deploy --only hosting |
นำเนื้อหาและการกำหนดค่า Hosting ไปยังช่องสดของเว็บไซต์ทั้งหมด Hosting ที่กำหนดค่าไว้ใน
firebase.json
|
firebase deploy --only hosting:TARGET_NAME |
นำเนื้อหาและการกำหนดค่า Hosting ไปยังช่องที่กำลังถ่ายทอดสด ของเว็บไซต์ Hosting ที่ระบุ |
คำสั่ง | คำอธิบาย |
---|---|
(ไม่แนะนำ ให้ใช้ emulators:start แทน)firebase serve --only hosting
|
แสดงเนื้อหาและการกำหนดค่า Hosting ของเว็บไซต์เริ่มต้น Hosting ที่ URL ที่โฮสต์ในเครื่อง |
(ไม่แนะนำ ให้ใช้ emulators:start แทน)firebase serve --only hosting:TARGET_NAME
|
แสดงHostingเนื้อหาและการกำหนดค่าของ Hostingเว็บไซต์ที่ระบุใน URL ที่โฮสต์ในเครื่อง |