แบ่งปันทรัพยากรโครงการในหลาย ๆ ไซต์

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

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

ขั้นตอนที่ 1 : อัปเดตเวอร์ชัน Firebase CLI ของคุณ

เข้าถึงฟีเจอร์โฮสติ้งของ Firebase ล่าสุดโดย อัปเดต Firebase CLI เป็นเวอร์ชันล่าสุด

ขั้นตอนที่ 2 : เพิ่มไซต์เพิ่มเติม

เพิ่มไซต์เพิ่มเติมในโครงการ Firebase โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:

สำหรับแต่ละวิธีเหล่านี้ คุณจะต้องระบุ SITE_ID ซึ่งใช้สร้างโดเมนย่อยเริ่มต้นที่จัดเตรียมโดย Firebase สำหรับไซต์:

  • SITE_ID .web.app
  • SITE_ID .firebaseapp.com

เนื่องจากมีการใช้ SITE_ID สำหรับ URL เหล่านี้ รหัสไซต์จึงมีข้อกำหนดดังต่อไปนี้:

  • ต้องเป็นป้ายกำกับชื่อโฮสต์ที่ถูกต้อง หมายความว่าต้องไม่มี . , _ , ฯลฯ
  • ต้องมีความยาวไม่เกิน 30 อักขระ
  • จะต้องไม่ซ้ำกันทั่วโลกภายใน Firebase

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

ลบไซต์รอง

ลบไซต์ที่ไม่ต้องการออกจากโครงการ Firebase โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:

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

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

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

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

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

โดยที่พารามิเตอร์คือ:

  • TARGET_NAME — ชื่อเฉพาะ (ที่คุณกำหนดเอง) สำหรับไซต์โฮสติ้งที่คุณกำลังปรับใช้

  • RESOURCE_IDENTIFIERSITE_ID สำหรับไซต์โฮสติ้ง ตามที่ระบุไว้ในโครงการ Firebase ของคุณ

ตัวอย่างเช่น หากคุณสร้างไซต์สองไซต์ ( 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 จำลองเนื้อหาการโฮสต์และการกำหนดค่าของไซต์การโฮสต์ เริ่มต้น ที่ URL ที่โฮสต์ในเครื่อง
firebase emulators:start --only hosting: TARGET_NAME จำลองเนื้อหาโฮสติ้งและการกำหนดค่าของไซต์โฮสติ้งที่ระบุที่ URL ที่โฮสต์ในเครื่อง
firebase hosting:channel:deploy \
CHANNEL_ID
ปรับใช้เนื้อหาการโฮสต์และการกำหนดค่าของไซต์การโฮสต์ เริ่มต้น ที่ URL ตัวอย่าง
firebase hosting:channel:deploy \
CHANNEL_ID --only TARGET_NAME
ปรับใช้เนื้อหาการโฮสต์และการกำหนดค่าของไซต์การโฮสต์ที่ระบุที่ URL ตัวอย่าง
firebase deploy --only hosting ปรับใช้เนื้อหาการโฮสต์และการกำหนดค่ากับช่องทางสดของไซต์โฮสติ้ง ทั้งหมด ที่กำหนดค่าใน firebase.json
firebase deploy --only hosting: TARGET_NAME ปรับใช้เนื้อหาโฮสติ้งและการกำหนดค่ากับช่องทางสดของไซต์โฮสติ้งที่ระบุ
สั่งการ คำอธิบาย
(ไม่แนะนำ ใช้ emulators:start แทน)
firebase serve --only hosting
ให้บริการเนื้อหาการโฮสต์และการกำหนดค่าของไซต์การโฮสต์ เริ่มต้น ที่ URL ที่โฮสต์ในเครื่อง
(ไม่แนะนำ ใช้ emulators:start แทน)
firebase serve --only hosting: TARGET_NAME
ให้บริการเนื้อหาการโฮสต์และการกำหนดค่าของไซต์การโฮสต์ที่ระบุที่ URL ที่โฮสต์ในเครื่อง