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

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

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

  • ใช้ HostingREST API: projects.sites.delete

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

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

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

หากต้องการสร้างเป้าหมายการทำให้ใช้งานได้และใช้ 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 เนื้อหาและการกำหนดค่าของเว็บไซต์ default 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 ที่โฮสต์ในเครื่อง