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

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 จะสร้างออบเจ็กต์ การเผยแพร่ ที่ชี้ไปยังเวอร์ชันที่เฉพาะเจาะจง การเผยแพร่จะมีข้อมูลเมตาเกี่ยวกับการทำให้ใช้งานได้ เช่น ผู้ที่ทำให้ใช้งานได้และเวลาที่ทำให้ใช้งานได้

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • โคลนจากช่องในโปรเจ็กต์ Firebase "staging" ไปยังช่อง preview ในโปรเจ็กต์ 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 ของเว็บไซต์เวอร์ชันก่อนหน้าได้ การดำเนินการนี้มีประโยชน์หากการเผยแพร่ปัจจุบันมีปัญหาและคุณต้องการย้อนกลับไปแสดงเว็บไซต์เวอร์ชันที่ทราบว่าใช้งานได้ หรือบางทีเว็บไซต์ของคุณอาจแสดงเนื้อหาชั่วคราวสำหรับวันหยุดหรือกิจกรรมพิเศษ แต่ตอนนี้คุณต้องการย้อนกลับไปแสดงเนื้อหา "ปกติ"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    firebase hosting:channel:delete CHANNEL_ID

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

คำสั่งสำหรับช่อง preview

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

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

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

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

firebase hosting:channel:delete CHANNEL_ID

ลบช่อง preview ที่ระบุ

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

firebase hosting:channel:deploy CHANNEL_ID

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

หากช่อง preview ยังไม่มีอยู่ คำสั่งนี้จะสร้างช่องใน เริ่มต้น 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

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

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

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

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

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

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