Join us for Firebase Summit on November 10, 2021. Tune in to learn how Firebase can help you accelerate app development, release with confidence, and scale with ease. Register

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

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

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

ขั้นตอนที่ 1: การปรับปรุงรุ่น Firebase CLI ของคุณ

การเข้าถึงมากที่สุดในปัจจุบัน Firebase Hosting คุณสมบัติโดย อัปเดตเป็นรุ่นล่าสุดของ Firebase CLI

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

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

  • ใช้ขั้นตอนการทำงานใน หน้า Hosting ของคอนโซล Firebase

  • ใช้คำสั่ง Firebase CLI: firebase hosting:sites:create SITE_ID

  • ใช้โฮสติ้ง 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

  • ใช้โฮสติ้ง REST API: projects.sites.delete

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

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

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

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

firebase target:apply hosting TARGET_NAME RESOURCE_IDENTIFIER

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

  • TARGET_NAME - ชื่อที่ไม่ซ้ำ (ที่คุณได้กำหนดเอง) สำหรับเว็บไซต์โฮสติ้งที่คุณนำไปใช้กับ

  • RESOURCE_IDENTIFIER - The SITE_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 ปรับเนื้อหาโฮสติ้งและการตั้งค่าไปยังช่องที่ถ่ายทอดสดจากเว็บไซต์ 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 ที่โฮสต์ในเครื่อง