ก่อนที่จะทำให้ใช้งานได้ในเว็บไซต์จริง คุณจะต้องดูและทดสอบการเปลี่ยนแปลง Firebase Hosting ช่วยให้คุณดูและทดสอบการเปลี่ยนแปลงในเครื่อง รวมถึงโต้ตอบกับทรัพยากรโปรเจ็กต์แบ็กเอนด์ที่จำลองขึ้นได้ หากต้องการให้เพื่อนร่วมทีมดูและทดสอบการเปลี่ยนแปลง Hosting สามารถสร้าง URL ตัวอย่างชั่วคราวที่แชร์ได้สำหรับเว็บไซต์ของคุณ นอกจากนี้ เรายังรองรับการผสานรวม GitHub เพื่อทำให้ใช้งานได้จาก Pull Request
ก่อนเริ่มต้น
ทำตามขั้นตอนที่ระบุไว้ในHostingหน้าเริ่มต้นใช้งาน โดยเฉพาะงานต่อไปนี้
- ติดตั้งหรืออัปเดต Firebase CLI เป็นเวอร์ชันล่าสุด
- เชื่อมต่อไดเรกทอรีโปรเจ็กต์ในเครื่อง (ซึ่งมีเนื้อหาของแอป) กับโปรเจ็กต์ Firebase
คุณสามารถเลือกที่จะติดตั้งใช้งานเนื้อหาและการกำหนดค่า Hosting ของแอปได้ แต่ไม่จำเป็นต้องทำก่อนขั้นตอนในหน้านี้
ขั้นตอนที่ 1: ทดสอบในเครื่อง
หากคุณกำลังทำการปรับปรุงซ้ำอย่างรวดเร็วหรือต้องการให้แอปโต้ตอบกับทรัพยากรโปรเจ็กต์แบ็กเอนด์ที่จำลองขึ้น คุณสามารถทดสอบเนื้อหาและการกำหนดค่า Hosting ในเครื่องได้ เมื่อทดสอบในเครื่อง Firebase จะแสดงเว็บแอปที่ URL ที่โฮสต์ในเครื่อง
Hosting เป็นส่วนหนึ่งของ Firebase Local Emulator Suite ซึ่งช่วยให้แอปของคุณโต้ตอบกับเนื้อหาและการกำหนดค่า Hosting ที่จำลองได้ รวมถึงทรัพยากรโปรเจ็กต์ที่จำลอง (ฟังก์ชัน ฐานข้อมูล และกฎ) (ไม่บังคับ)
(ไม่บังคับ) โดยค่าเริ่มต้น แอปที่โฮสต์ในเครื่องจะโต้ตอบกับทรัพยากรโปรเจ็กต์จริง ไม่ใช่ทรัพยากรจำลอง (ฟังก์ชัน ฐานข้อมูล กฎ ฯลฯ) แต่คุณสามารถเลือกเชื่อมต่อแอปเพื่อใช้ทรัพยากรโปรเจ็กต์ที่จำลองไว้ซึ่งคุณได้กำหนดค่าไว้แทนได้ ดูข้อมูลเพิ่มเติม Realtime Database | Cloud Firestore | Cloud Functions
เรียกใช้คำสั่งต่อไปนี้จากรูทของไดเรกทอรีโปรเจ็กต์ที่อยู่ในเครื่อง
firebase emulators:start
เปิดเว็บแอปที่ URL ในเครื่องที่ CLI แสดงผล (โดยปกติคือ
http://localhost:5000)หากต้องการอัปเดต URL ในเครื่องพร้อมการเปลี่ยนแปลง ให้รีเฟรชเบราว์เซอร์
ทดสอบจากอุปกรณ์อื่นๆ ในเครื่อง
โดยค่าเริ่มต้น โปรแกรมจำลองจะตอบสนองต่อคำขอจาก localhost เท่านั้น ซึ่งหมายความว่าคุณจะเข้าถึงเนื้อหาที่โฮสต์ได้จากเว็บเบราว์เซอร์ของคอมพิวเตอร์ แต่จะเข้าถึงจากอุปกรณ์อื่นๆ ในเครือข่ายไม่ได้ หากต้องการทดสอบจากอุปกรณ์อื่นๆ ในพื้นที่ ให้กำหนดค่า firebase.json ดังนี้
"emulators": {
// ...
"hosting": {
"port": 5000,
"host": "0.0.0.0"
}
}
ขั้นตอนที่ 2: ดูตัวอย่างและแชร์
หากต้องการให้ผู้อื่นดูการเปลี่ยนแปลงในเว็บแอปก่อนเผยแพร่ คุณสามารถใช้ช่องทางเวอร์ชันตัวอย่างได้
หลังจากติดตั้งใช้งานในช่องทางเวอร์ชันตัวอย่างแล้ว Firebase จะแสดงเว็บแอปที่ "URL เวอร์ชันตัวอย่าง" ซึ่งเป็น URL ชั่วคราวที่แชร์ได้ เมื่อใช้ URL ตัวอย่าง เว็บแอปจะโต้ตอบกับแบ็กเอนด์จริงสำหรับทรัพยากรโปรเจ็กต์ทั้งหมด (ยกเว้นฟังก์ชัน "ที่ปักหมุด" ในการกำหนดค่าการเขียนใหม่)
โปรดทราบว่าแม้ URL ตัวอย่างจะคาดเดาได้ยาก (เนื่องจากมีแฮชแบบสุ่ม) แต่ก็เป็นแบบสาธารณะ ดังนั้นทุกคนที่ทราบ URL จะเข้าถึงได้
เรียกใช้คำสั่งต่อไปนี้จากรูทของไดเรกทอรีโปรเจ็กต์ที่อยู่ในเครื่อง
firebase hosting:channel:deploy CHANNEL_ID
แทนที่ CHANNEL_ID ด้วยสตริงที่ไม่มีเว้นวรรค (เช่น
feature_mission-2-mars) ระบบจะใช้รหัสนี้เพื่อสร้าง URL ตัวอย่างที่เชื่อมโยงกับช่องตัวอย่างเปิดเว็บแอปที่ URL ตัวอย่างที่ CLI แสดงผล ซึ่งจะมีลักษณะดังนี้
PROJECT_ID--CHANNEL_ID-RANDOM_HASH.web.appหากต้องการอัปเดต URL ตัวอย่างด้วยการเปลี่ยนแปลง ให้เรียกใช้คำสั่งเดิมอีกครั้ง ตรวจสอบว่าได้ระบุ
CHANNEL_IDเดียวกันในคำสั่ง
ดูข้อมูลเกี่ยวกับการจัดการช่องตัวอย่าง รวมถึงวิธีตั้งค่าการหมดอายุของช่อง
Firebase Hosting รองรับ GitHub Action ที่สร้างและอัปเดต URL ตัวอย่างโดยอัตโนมัติเมื่อคุณคอมมิตการเปลี่ยนแปลงใน Pull Request ดูวิธีตั้งค่าและใช้ GitHub Action นี้
ขั้นตอนที่ 3: นำไปใช้งานจริง
เมื่อพร้อมแชร์การเปลี่ยนแปลงกับผู้คนทั่วโลกแล้ว ให้ทำให้เนื้อหาและการกำหนดค่า Hosting พร้อมใช้งานในช่องทางที่เผยแพร่อยู่ Firebase มีตัวเลือกที่แตกต่างกัน 2-3 รายการสำหรับขั้นตอนนี้ ทั้งนี้ขึ้นอยู่กับกรณีการใช้งานของคุณ (ดูตัวเลือกด้านล่าง)
ตัวเลือกที่ 1: โคลนจากช่องตัวอย่างไปยังช่องที่เผยแพร่
ตัวเลือกนี้ช่วยให้คุณมั่นใจได้ว่ากำลังติดตั้งใช้งานเนื้อหาและการกำหนดค่าที่ตรงกันกับที่ทดสอบในช่องตัวอย่างในช่องที่เผยแพร่จริง ดูข้อมูลเพิ่มเติมเกี่ยวกับการโคลนเวอร์ชัน
เรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีใดก็ได้
firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:live
แทนที่ตัวยึดตำแหน่งแต่ละรายการด้วยข้อมูลต่อไปนี้
SOURCE_SITE_ID และ TARGET_SITE_ID: รหัสของเว็บไซต์ Hosting ที่มีช่อง
- สำหรับเว็บไซต์ Hosting เริ่มต้น ให้ใช้รหัสโปรเจ็กต์ Firebase
- คุณสามารถระบุเว็บไซต์ที่อยู่ในโปรเจ็กต์ Firebase เดียวกันหรือแม้แต่ในโปรเจ็กต์ Firebase อื่นๆ ได้
SOURCE_CHANNEL_ID: ตัวระบุสำหรับช่องทางที่กำลังแสดงเวอร์ชันที่คุณต้องการทำให้ใช้งานได้ในช่องทางที่เผยแพร่อยู่
- สำหรับช่องรายการสด ให้ใช้
liveเป็นรหัสช่อง
- สำหรับช่องรายการสด ให้ใช้
ดูการเปลี่ยนแปลง (ขั้นตอนถัดไป)
ตัวเลือกที่ 2: ทำให้ใช้งานได้จากไดเรกทอรีโปรเจ็กต์ที่อยู่ในเครื่องไปยังช่องที่เผยแพร่อยู่
ตัวเลือกนี้ช่วยให้คุณปรับการกำหนดค่าเฉพาะสำหรับช่องเวอร์ชันที่ใช้งานจริงหรือติดตั้งใช้งานได้แม้ว่าคุณจะไม่ได้ใช้ช่องเวอร์ชันตัวอย่างก็ตาม
เรียกใช้คำสั่งต่อไปนี้จากรูทของไดเรกทอรีโปรเจ็กต์ที่อยู่ในเครื่อง
firebase deploy --only hosting
ดูการเปลี่ยนแปลง (ขั้นตอนถัดไป)
ดูข้อมูลเพิ่มเติมได้ที่คำถามที่พบบ่อยนี้
ขั้นตอนที่ 4: ดูการเปลี่ยนแปลงในเว็บไซต์ที่เผยแพร่อยู่
ทั้ง 2 ตัวเลือกข้างต้นจะทำให้เนื้อหาและกำหนดค่า Hosting ของคุณใช้งานได้ในเว็บไซต์ต่อไปนี้
โดเมนย่อยที่ Firebase จัดสรรให้สำหรับเว็บไซต์ Hosting เริ่มต้นและเว็บไซต์ Hosting เพิ่มเติม:
SITE_ID.web.app(เช่นPROJECT_ID.web.app)
SITE_ID.firebaseapp.com(เช่นPROJECT_ID.firebaseapp.com)โดเมนที่กำหนดเองที่คุณเชื่อมต่อกับเว็บไซต์ Hosting
หากต้องการจำกัดการทำให้ใช้งานได้ไว้เฉพาะเว็บไซต์ Hosting ที่เจาะจง ให้ระบุเป้าหมายการทำให้ใช้งานได้ในคำสั่ง CLI
กิจกรรมและข้อมูลการติดตั้งใช้งานอื่นๆ
เพิ่มความคิดเห็นสำหรับการทำให้ใช้งานได้
คุณสามารถเพิ่มความคิดเห็นในการทำให้ใช้งานได้ (ไม่บังคับ) ความคิดเห็นนี้จะแสดงพร้อมกับข้อมูลการติดตั้งใช้งานอื่นๆ ในแดชบอร์ด Hosting ในคอนโซล Firebase เช่น
firebase deploy --only hosting -m "Deploying the best new feature ever."
เพิ่มงานที่เขียนสคริปต์ก่อนการติดตั้งใช้งานและหลังการติดตั้งใช้งาน
คุณสามารถเชื่อมต่อสคริปต์ของ Shell กับคำสั่ง firebase deploy เพื่อทำงานก่อนหรือหลังการทำให้ใช้งานได้ ตัวอย่างเช่น Hook หลังการติดตั้งใช้งานอาจแจ้งให้ผู้ดูแลระบบทราบเกี่ยวกับการติดตั้งใช้งานเนื้อหาใหม่ของเว็บไซต์ ดูรายละเอียดเพิ่มเติมได้ในเอกสารประกอบ CLI ของ Firebase
การแคชเนื้อหาที่ติดตั้งใช้งาน
เมื่อมีการส่งคำขอสำหรับเนื้อหาแบบคงที่ Firebase Hosting จะแคชเนื้อหาใน CDN โดยอัตโนมัติ หากคุณทำให้เนื้อหาของเว็บไซต์ใช้งานได้อีกครั้ง Firebase จะล้างเนื้อหาแบบคงที่ที่แคชไว้ทั้งหมดใน CDN โดยอัตโนมัติเพื่อให้คำขอใหม่ได้รับเนื้อหาใหม่
โปรดทราบว่าคุณสามารถกำหนดค่าการแคชเนื้อหาแบบไดนามิกได้
การแสดงผลผ่าน HTTPS
ตรวจสอบว่าทรัพยากรภายนอกทั้งหมดที่ไม่ได้โฮสต์ใน Firebase Hosting โหลดผ่าน SSL (HTTPS) รวมถึงสคริปต์ภายนอกทั้งหมด เบราว์เซอร์ส่วนใหญ่ไม่อนุญาตให้ผู้ใช้โหลด "เนื้อหาแบบผสม" (การเข้าชมแบบ SSL และไม่ใช่ SSL)
กำลังลบไฟล์
ใน Firebase Hosting วิธีหลักในการลบไฟล์ที่เลือกจากเว็บไซต์ที่ทำให้ใช้งานได้คือการลบไฟล์ในเครื่อง แล้วทำให้ใช้งานได้อีกครั้ง
ขั้นตอนถัดไป
ผสานรวมกับ GitHub และทำซ้ำเนื้อหาที่แสดงตัวอย่างโดยตั้งค่า GitHub Action
ดูข้อมูลเพิ่มเติมเกี่ยวกับความสามารถในการโฮสต์เพิ่มเติม
ดูเอกสารประกอบฉบับเต็มสำหรับ Firebase CLI
เตรียมพร้อมเปิดตัวแอปโดยทำดังนี้
- ตั้งค่าการแจ้งเตือนงบประมาณสำหรับโปรเจ็กต์ในคอนโซล Google Cloud
- ตรวจสอบแดชบอร์ดการใช้งานและการเรียกเก็บเงินในคอนโซล Firebase เพื่อดูภาพรวมการใช้งานของโปรเจ็กต์ในบริการต่างๆ ของ Firebase นอกจากนี้ คุณยังไปที่แดชบอร์ดHostingการใช้งานเพื่อดูข้อมูลการใช้งานโดยละเอียดได้ด้วย
- ดูรายการตรวจสอบการเปิดตัวของ Firebase