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

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

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

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

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

รูปภาพของ <span class=ลําดับชั้นของโฮสติ้ง Firebase" />

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

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

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

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

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

จำกัดจำนวนรุ่นที่จะเก็บไว้

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

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

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

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

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

  1. ในคอนโซล Firebase ให้ไปที่กล่องโต้ตอบการตั้งค่าพื้นที่เก็บข้อมูลของรุ่น โดยทำดังนี้

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

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

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

ตั้งค่าเวลาหมดอายุของเวอร์ชันตัวอย่าง

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

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

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

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

  • Firebase CLI
    เมื่อทำให้ใช้งานได้ในเวอร์ชันตัวอย่าง ให้ส่ง Flag --expires DURATION เช่น

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

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

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

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

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

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

  • โคลนจากช่องตัวอย่าง "QA" ไปยังช่องที่เผยแพร่ของเว็บไซต์ (เผยแพร่แล้ว)

  • โคลนจากแชแนลที่เผยแพร่ของเว็บไซต์ไปยังแชแนลตัวอย่าง "แก้ไขข้อบกพร่อง" (เช่น ก่อนการย้อนกลับ)

  • โคลนจากแชแนลในโปรเจ็กต์ Firebase "ระยะก่อนเผยแพร่" ไปยังแชแนลเวอร์ชันตัวอย่างในโปรเจ็กต์ Firebase "เวอร์ชันที่ใช้งานจริง"

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

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 เป็นรหัสช่อง
    • หากยังไม่มีช่อง "เป้าหมาย" ที่ระบุไว้ คําสั่งนี้จะสร้างช่องก่อนนำไปใช้งาน

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

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

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

วิธีเปลี่ยนกลับมีดังนี้

  1. ในคอนโซล Firebase ในตารางประวัติรุ่นของเว็บไซต์ ให้วางเมาส์เหนือรายการรุ่นก่อนหน้าที่ต้องการเปลี่ยนกลับไปใช้

  2. คลิก แล้วเลือกเปลี่ยนกลับ

ลบรุ่นด้วยตนเอง

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

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

วิธีลบรุ่นมีดังนี้

  1. ในคอนโซล Firebase ในตารางประวัติรุ่นของเว็บไซต์ ให้วางเมาส์เหนือรายการรุ่นก่อนหน้าที่ต้องการลบ

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

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

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

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

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

เมื่อคุณลบแชแนลเวอร์ชันตัวอย่าง ระบบจะกำหนดเวลาในการลบแชแนล รวมถึงรุ่นและเวอร์ชันที่เกี่ยวข้องภายใน 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

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

คุณลบช่องถ่ายทอดสดของเว็บไซต์ไม่ได้

firebase hosting:channel:deploy CHANNEL_ID

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

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

firebase hosting:channel:list แสดงรายการช่องทั้งหมด (รวมถึงช่อง "ถ่ายทอดสด") ในเว็บไซต์ 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

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

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

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