Check out what’s new from Firebase at Google I/O 2022. Learn more

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

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

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

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

เข้าถึงคุณสมบัติ Firebase Hosting ล่าสุดโดย อัปเดตเป็นเวอร์ชันล่าสุดของ 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 จำลองเนื้อหา Hosting และการกำหนดค่าของเว็บไซต์ Hosting ที่ระบุที่ 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
ให้บริการเนื้อหา Hosting และการกำหนดค่าของเว็บไซต์ Hosting ที่ระบุที่ URL ที่โฮสต์ในเครื่อง