จัดการเวอร์ชันสดและตัวอย่างช่อง รุ่น และเวอร์ชันสำหรับเว็บไซต์

Firebase Hosting มีเครื่องมือผ่านทั้งคอนโซล Firebase และ CLI Firebase เพื่อจัดการช่อง การเผยแพร่ และเวอร์ชันสำหรับเว็บไซต์ Hosting

ภาพรวมของโครงสร้างพื้นฐานHosting

การทำความเข้าใจโครงสร้างพื้นฐานของ Hosting จะช่วยให้คุณเข้าใจ ตัวเลือกการจัดการที่อธิบายไว้ในหน้านี้

ทุกโปรเจ็กต์ Firebase จะมี Hosting เว็บไซต์ Hosting เริ่มต้นที่มีสิทธิ์เข้าถึงทรัพยากรทั้งหมด ของโปรเจ็กต์ (ฐานข้อมูล การตรวจสอบสิทธิ์ ฟังก์ชัน และอื่นๆ) เว็บไซต์ ประกอบด้วยช่องอย่างน้อย 1 ช่อง โดยแต่ละช่องจะเชื่อมโยงกับ URL ที่แสดงเนื้อหาที่เฉพาะเจาะจงและการกำหนดค่าHosting

รูปภาพของ <span class=Firebase Hosting hierarchy" />

เว็บไซต์ Hosting ทุกเว็บไซต์จะมีช่อง "live" ที่แสดงเนื้อหาและการกำหนดค่า Hosting ที่ (1) โดเมนย่อยที่ Firebase จัดสรรให้ของเว็บไซต์ (SITE_ID.web.app และ SITE_ID.firebaseapp.com) และ (2) โดเมนที่กำหนดเองที่เชื่อมต่อ นอกจากนี้ คุณยังสร้างช่อง "preview" ที่แสดงเนื้อหาและการกำหนดค่าของตัวเองได้ใน "URL ตัวอย่าง" ชั่วคราวที่แชร์ได้ (SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app)

เนื้อหาและการกำหนดค่าที่แสดงโดยแต่ละช่องจะรวมอยู่ในออบเจ็กต์เวอร์ชัน ที่มีตัวระบุที่ไม่ซ้ำกัน เมื่อคุณทำให้ใช้งานได้ในเว็บไซต์ Firebase จะสร้างออบเจ็กต์การเผยแพร่ ที่ชี้ไปยังเวอร์ชันที่เฉพาะเจาะจง การเผยแพร่จะมีข้อมูลเมตาเกี่ยวกับการทำให้ใช้งานได้ เช่น ผู้ที่ทำให้ใช้งานได้และเวลาที่ทำให้ใช้งานได้

จากแดชบอร์ดของโปรเจ็กต์ Firebase Hosting คุณจะเห็นประวัติการเผยแพร่ทั้งหมดของช่อง live ในตาราง ประวัติการเผยแพร่ หากมี เว็บไซต์ Hostingหลายรายการ ให้คลิก ดู สำหรับ เว็บไซต์ที่ต้องการเพื่อดูประวัติการเผยแพร่ หากมีช่องตัวอย่าง ระบบจะแสดงช่องดังกล่าวในแดชบอร์ดHostingด้วย

จัดการการตั้งค่าของช่อง

คุณสามารถควบคุมการตั้งค่าของแต่ละช่องในเว็บไซต์ได้ การตั้งค่าบางอย่าง เช่น การหมดอายุของช่อง จะมีผลกับช่องตัวอย่างเท่านั้น

จำกัดจำนวนการเผยแพร่ที่จะเก็บไว้

ทุกครั้งที่คุณทำให้ใช้งานได้ในช่อง (และสร้างการเผยแพร่) Hosting จะเก็บ เวอร์ชันที่เชื่อมโยงกับการเผยแพร่ก่อนหน้าไว้ในHosting พื้นที่เก็บข้อมูลของโปรเจ็กต์ คุณสามารถกำหนดจำนวนการเผยแพร่ที่จะเก็บไว้สำหรับ แต่ละช่อง ในโปรเจ็กต์ ทั้งช่อง live และช่องตัวอย่าง

  • ทำไม Hosting จึงเก็บการเผยแพร่ก่อนหน้า
    สำหรับช่อง live การเก็บการเผยแพร่ก่อนหน้าไว้จะช่วยให้คุณ ย้อนกลับไปใช้เว็บไซต์เวอร์ชันก่อนหน้าได้หากจำเป็น ส่วนช่องตัวอย่างนั้นยังไม่สามารถย้อนกลับได้

  • ทำไมจึงต้องจำกัดจำนวนการเผยแพร่ที่จะเก็บไว้
    ฟีเจอร์นี้ช่วยให้คุณควบคุมระดับการใช้งานพื้นที่เก็บข้อมูล ของโปรเจ็กต์Hostingได้ เนื่องจากระบบจะเก็บ เนื้อหาของการเผยแพร่ก่อนหน้าไว้ในพื้นที่เก็บข้อมูลนี้ คุณสามารถตรวจสอบพื้นที่เก็บข้อมูล Hosting ได้จากแท็บ พื้นที่เก็บข้อมูล ในคอนโซล

  • จะเกิดอะไรขึ้นเมื่อคุณจำกัดการเผยแพร่ที่จะเก็บไว้
    เมื่อคุณกำหนดขีดจำกัดสำหรับการเผยแพร่ที่จะเก็บไว้ ระบบจะกำหนดเวลาให้มีการลบเนื้อหาของการเผยแพร่ที่อยู่เหนือขีดจำกัดที่กำหนด โดยเริ่มจากการเผยแพร่ที่เก่าที่สุดก่อน

วิธีตั้งค่าขีดจำกัดพื้นที่เก็บข้อมูลการเผยแพร่สำหรับช่อง

  1. ในคอนโซล Firebase ให้ไปที่ Hosting และ Serverless > Hosting เพื่อเข้าถึงกล่องโต้ตอบการตั้งค่าพื้นที่เก็บข้อมูลการเผยแพร่

    • สำหรับช่อง live
      ในตาราง ประวัติการเผยแพร่ ของเว็บไซต์ ให้คลิก แล้วเลือก การตั้งค่าพื้นที่เก็บข้อมูลการเผยแพร่

    • สำหรับช่องตัวอย่าง
      ในแถวของช่องตัวอย่าง ให้คลิก แล้วเลือก การตั้งค่าช่อง

  2. ป้อนจำนวนการเผยแพร่ที่ต้องการเก็บไว้ แล้วคลิกบันทึก

ตั้งค่าการหมดอายุของช่องตัวอย่าง

โดยค่าเริ่มต้น ช่องตัวอย่างจะหมดอายุ 7 วันนับจากวันที่สร้าง แต่ช่อง live ของเว็บไซต์จะไม่มีวันหมดอายุ

เมื่อช่องตัวอย่างหมดอายุ ระบบจะกำหนดเวลาให้มีการลบช่อง รวมถึงการเผยแพร่และเวอร์ชันที่เกี่ยวข้องภายใน 24 ชั่วโมง และจะปิดใช้งาน URL ตัวอย่างที่เชื่อมโยงด้วย ข้อยกเว้นของการลบเวอร์ชันนี้คือกรณีที่เวอร์ชันเชื่อมโยงกับการเผยแพร่อื่น (เช่น กรณีที่คุณโคลนเวอร์ชันจากช่องหนึ่งไปยังอีกช่องหนึ่ง ภายในเว็บไซต์เดียวกัน)

Hosting รองรับ 2 วิธีในการควบคุมการหมดอายุของช่อง ดังนี้

  • Firebase คอนโซล
    ในแถวของช่องตัวอย่าง ให้คลิก แล้วเลือก การตั้งค่าช่อง ป้อนวันที่และเวลาที่หมดอายุ

  • Firebase CLI
    เมื่อทำให้ใช้งานได้ในช่องตัวอย่าง ให้ส่งแฟล็ก --expires DURATION เช่น

    firebase hosting:channel:deploy new-awesome-feature --expires 7d

    การหมดอายุจะเกิดขึ้นได้ไม่เกิน 30 วันนับจากวันที่ทำให้ใช้งานได้ ใช้ h สำหรับชั่วโมง d สำหรับวัน และ w สำหรับสัปดาห์ (เช่น 12h, 7d, 2w ตามลำดับ)

โคลนเวอร์ชันจากช่องหนึ่งไปยังอีกช่องหนึ่ง

คุณสามารถโคลนเวอร์ชันที่ทำให้ใช้งานได้จากช่องหนึ่งไปยังอีกช่องหนึ่งได้ โดยสามารถโคลนระหว่างช่อง live หรือช่องตัวอย่าง ระหว่างเว็บไซต์ Hosting หรือแม้แต่ระหว่างโปรเจ็กต์ Firebase

คำสั่งโคลนจะ ทำให้ใช้งานได้ ในช่อง "เป้าหมาย" ด้วย เพื่อให้ระบบแสดงเนื้อหาและการกำหนดค่า Hosting ที่โคลนมา Hostingโดยอัตโนมัติใน URL ที่เชื่อมโยงของช่อง "เป้าหมาย"

ฟีเจอร์นี้มีประโยชน์สำหรับการติดตามเวอร์ชันหรือหากคุณต้องการความมั่นใจว่ากำลังทำให้ใช้งานได้ซึ่งเนื้อหา ที่แน่นอน ที่คุณได้ดูและ/หรือทดสอบในช่องอื่น ตัวอย่างเช่น

  • โคลนจากช่องตัวอย่าง "QA" ไปยังช่อง live ของเว็บไซต์ (เปิดใช้งานจริง)

  • โคลนจากช่อง live ของเว็บไซต์ไปยังช่องตัวอย่าง "debug" (เช่น ก่อนย้อนกลับ)

  • โคลนจากช่องในโปรเจ็กต์ Firebase "staging" ไปยังช่องตัวอย่างในโปรเจ็กต์ Firebase "prod"

หากต้องการโคลนเวอร์ชัน ให้เรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีใดก็ได้

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

แทนที่ตัวยึดตำแหน่งแต่ละรายการด้วยข้อมูลต่อไปนี้

  • SOURCE_SITE_ID และ TARGET_SITE_ID: รหัสของเว็บไซต์ Hosting ที่มีช่อง

    • สำหรับเว็บไซต์ Hosting เริ่มต้น ให้ใช้รหัสโปรเจ็กต์ Firebase
    • คุณสามารถระบุเว็บไซต์ Hosting ที่อยู่ในโปรเจ็กต์ Firebase เดียวกันหรือ แม้แต่ในโปรเจ็กต์ Firebase ที่แตกต่างกัน
  • SOURCE_CHANNEL_ID และ TARGET_CHANNEL_ID: ตัวระบุสำหรับช่อง

    • สำหรับช่อง live ให้ใช้ live เป็นรหัสช่อง
    • หากช่อง "เป้าหมาย" ที่ระบุยังไม่มีอยู่ คำสั่งนี้จะสร้างช่องก่อนที่จะทำให้ใช้งานได้ในช่องดังกล่าว

ย้อนกลับไปใช้เว็บไซต์เวอร์ชันก่อนหน้า

คุณสามารถย้อนกลับไปแสดงช่อง live ของเว็บไซต์เวอร์ชันก่อนหน้าได้ การดำเนินการนี้มีประโยชน์หากการเผยแพร่ปัจจุบันมีปัญหาและคุณต้องการย้อนกลับไปแสดงเว็บไซต์เวอร์ชันที่ทราบว่าใช้งานได้ หรือบางทีเว็บไซต์ของคุณอาจแสดงเนื้อหาชั่วคราวสำหรับวันหยุดหรือกิจกรรมพิเศษ แต่ตอนนี้คุณต้องการย้อนกลับไปแสดงเนื้อหา "ปกติ"

การย้อนกลับจะสร้างการเผยแพร่ใหม่ที่แสดงเนื้อหาเวอร์ชันเดียวกับการเผยแพร่ก่อนหน้า ในตารางประวัติการเผยแพร่ การเผยแพร่ทั้ง 2 รายการจะแสดงตัวระบุเวอร์ชันเดียวกัน

วิธีย้อนกลับ

  1. ในคอนโซลFirebase ให้ไปที่ Hosting และ Serverless > Hosting

  2. ในตารางประวัติการเผยแพร่ ของเว็บไซต์ ให้วางเมาส์เหนือรายการการเผยแพร่ก่อนหน้าที่ต้องการย้อนกลับไปใช้

  3. คลิก แล้วเลือก ย้อนกลับ

ลบการเผยแพร่ด้วยตนเอง

คุณอาจต้องลบการเผยแพร่จากช่อง live ด้วยตนเองเพื่อเพิ่มพื้นที่เก็บข้อมูล Hostingสำหรับโปรเจ็กต์ คุณลบได้เฉพาะการเผยแพร่ก่อนหน้าเท่านั้น ไม่ใช่การเผยแพร่ที่กำลังแสดงอยู่ในเว็บไซต์ live

เมื่อลบการเผยแพร่ คุณกำลังลบเนื้อหาของการเผยแพร่ดังกล่าว ซึ่งระบบจะกำหนดเวลาให้มีการลบภายใน 24 ชั่วโมง ระบบจะเก็บออบเจ็กต์การเผยแพร่ไว้เพื่อให้คุณยังคงดูข้อมูลเมตาได้ (ผู้ที่ทำให้ใช้งานได้และเวลาที่ทำให้ใช้งานได้)

วิธีลบการเผยแพร่

  1. ในคอนโซลFirebase ให้ไปที่ Hosting และ Serverless > Hosting

  2. ในตารางประวัติการเผยแพร่ ของเว็บไซต์ ให้วางเมาส์เหนือรายการการเผยแพร่ก่อนหน้าที่ต้องการลบ

  3. คลิก แล้วเลือก ลบ

ลบไฟล์ด้วยตนเอง

ใน Firebase Hosting วิธีหลักในการลบไฟล์ที่เลือก จากเว็บไซต์ที่ทำให้ใช้งานได้แล้วคือการลบไฟล์ในเครื่อง แล้วทำให้ใช้งานได้อีกครั้ง

ลบช่องตัวอย่างด้วยตนเอง

คุณสามารถดูตัวอย่างช่องได้โดยคลิกช่องที่ต้องการดูตัวอย่าง จากมุมมองนี้ คุณจะเห็น ลบ และเปลี่ยนกลับการทำให้ใช้งานได้และการเผยแพร่ล่าสุดที่เชื่อมโยงกับช่องที่เฉพาะเจาะจง คุณสามารถลบช่องตัวอย่างได้ แต่จะลบช่อง live ของเว็บไซต์ไม่ได้

เมื่อคุณลบช่องตัวอย่าง ระบบจะกำหนดเวลาให้มีการลบช่อง รวมถึงการเผยแพร่และเวอร์ชันที่เกี่ยวข้องภายใน 24 ชั่วโมง และจะปิดใช้งาน URL ตัวอย่างที่เชื่อมโยงด้วย ข้อยกเว้นของการลบเวอร์ชันนี้คือกรณีที่เวอร์ชันเชื่อมโยงกับการเผยแพร่อื่น (เช่น กรณีที่คุณโคลนเวอร์ชันจากช่องหนึ่งไปยังอีกช่องหนึ่ง ภายในเว็บไซต์เดียวกัน)

Hosting รองรับ 2 วิธีในการลบช่องตัวอย่าง ดังนี้

  • Firebase คอนโซล
    ในแถวของช่องตัวอย่าง ให้คลิก แล้วเลือก ลบช่อง ยืนยันการลบ

  • Firebase CLI
    เรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีใดก็ได้

    firebase hosting:channel:delete CHANNEL_ID

คำสั่ง CLI สำหรับช่องตัวอย่างและการโคลน

คำสั่งสำหรับช่องตัวอย่าง

คำสั่งทั้งหมดสำหรับช่องตัวอย่างรองรับเป้าหมายการทำให้ใช้งานได้หากคุณมี เว็บไซต์ Hosting หลายเว็บไซต์

สั่ง คำอธิบาย
firebase hosting:channel:create CHANNEL_ID

สร้างช่องตัวอย่างใหม่ใน เริ่มต้น Hosting ไซต์โดยใช้ CHANNEL_ID ที่ระบุ

คำสั่งนี้จะไม่ทำให้ใช้งานได้ในช่อง

firebase hosting:channel:delete CHANNEL_ID

ลบช่องตัวอย่างที่ระบุ

คุณจะลบช่อง live ของเว็บไซต์ไม่ได้

firebase hosting:channel:deploy CHANNEL_ID

ทำให้เนื้อหาและการกำหนดค่า Hosting ใช้งานได้ในช่องตัวอย่างที่ระบุ

หากช่องตัวอย่างยังไม่มีอยู่ คำสั่งนี้จะสร้างช่องในเว็บไซต์ เริ่มต้น Hosting ก่อนที่จะทำให้ใช้งานได้ในช่อง

firebase hosting:channel:list แสดงช่องทั้งหมด (รวมถึงช่อง "live") ในเว็บไซต์ เริ่มต้น Hosting
firebase hosting:channel:open CHANNEL_ID เปิดเบราว์เซอร์ไปยัง URL ของช่องที่ระบุ หรือแสดง URL หากเปิดในเบราว์เซอร์ไม่ได้

คำสั่งสำหรับการโคลนเวอร์ชัน

สั่ง คำอธิบาย
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

โคลนเวอร์ชันที่ทำให้ใช้งานได้ล่าสุดในช่อง "แหล่งที่มา" ที่ระบุ ไปยังช่อง "เป้าหมาย" ที่ระบุ

คำสั่งนี้จะทำให้ใช้งานได้ในช่อง "เป้าหมาย" ที่ระบุด้วย หากช่อง "เป้าหมาย" ยังไม่มีอยู่ คำสั่งนี้จะสร้างช่องตัวอย่างใหม่ในเว็บไซต์ "เป้าหมาย" Hosting ก่อนที่จะทำให้ใช้งานได้ในช่อง

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

โคลนเวอร์ชันที่ระบุไปยังช่อง "เป้าหมาย" ที่ระบุ

คำสั่งนี้จะทำให้ใช้งานได้ในช่อง "เป้าหมาย" ที่ระบุด้วย หากช่อง "เป้าหมาย" ยังไม่มีอยู่ คำสั่งนี้จะสร้างช่องตัวอย่างใหม่ในเว็บไซต์ "เป้าหมาย" Hosting ก่อนที่จะทำให้ใช้งานได้ในช่อง

คุณจะพบ VERSION_ID ใน Hosting แดชบอร์ด ของ Firebase คอนโซล