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

คุณสามารถตั้งค่าไซต์โฮสติ้ง Firebase อย่างน้อย 1 ไซต์ในโปรเจ็กต์ 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 ที่โฮสต์ในเครื่อง