แชร์แหล่งข้อมูลของโครงการในหลายเว็บไซต์

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

การตั้งค่าเว็บไซต์ 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

  • ใช้ Hosting REST 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

  • ใช้ Hosting REST API: projects.sites.delete

โปรดทราบว่าคุณจะลบเว็บไซต์เริ่มต้นซึ่งมี SITE_ID เหมือนกับรหัสโปรเจ็กต์ Firebase ไม่ได้

ขั้นตอนที่ 3: ตั้งค่าเป้าหมายการนําไปใช้สําหรับเว็บไซต์

เมื่อคุณมีเว็บไซต์หลายแห่งและเรียกใช้Firebaseคําสั่งการทําให้ใช้งานได้ของ CLI แล้ว CLI จะต้องมีวิธีสื่อสารว่าควรทําให้การตั้งค่าใดใช้งานได้ในเว็บไซต์แต่ละแห่ง เป้าหมายการนําไปใช้จริงช่วยให้คุณระบุเว็บไซต์ที่เฉพาะเจาะจงได้โดยใช้ TARGET_NAME ในไฟล์การกําหนดค่า firebase.json และคําสั่ง CLI Firebase สำหรับการทดสอบหรือการใช้กับเว็บไซต์

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

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

โดยพารามิเตอร์มีดังนี้

  • TARGET_NAME — ชื่อที่ไม่ซ้ำกัน (ที่คุณกำหนดเอง) สำหรับเว็บไซต์ Hosting ที่จะติดตั้งใช้งาน

  • RESOURCE_IDENTIFIERSITE_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 \
CHANNEL_ID
ติดตั้งใช้งานเนื้อหาและการกำหนดค่า Hosting ของเว็บไซต์ Hosting เริ่มต้น ที่ URL แสดงตัวอย่าง
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
ติดตั้งใช้งานเนื้อหาและการกำหนดค่า 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 ที่โฮสต์ในเครื่อง