วางเป้าหมาย

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

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

  • การกำหนดค่าโฮสติ้งสำหรับไซต์โฮสติ้งแต่ละไซต์ของคุณ
  • สินทรัพย์คงที่จากไดเร็กทอรีโครงการของคุณสำหรับไซต์โฮสติ้งแต่ละไซต์ของคุณ
  • กฎความปลอดภัยที่ใช้ร่วมกันโดยอินสแตนซ์ฐานข้อมูลเรียลไทม์หลายรายการหรือที่เก็บข้อมูล Cloud Storage หลายรายการ

หากต้องการตั้งค่าเป้าหมายการปรับใช้:

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

เมื่อคุณเรียกใช้ คำสั่ง Firebase CLI (เช่น firebase deploy ) Firebase CLI จะจับคู่ TARGET_NAME แต่ละรายการกับทรัพยากร Firebase ที่เกี่ยวข้อง จากนั้น CLI จะสื่อสารกับโปรเจ็กต์ Firebase ของคุณเกี่ยวกับการตั้งค่าสำหรับทรัพยากรแต่ละรายการ

ตั้งค่าเป้าหมายการทำให้ใช้งานได้สำหรับทรัพยากร Firebase ของคุณ

ใช้ Firebase CLI ใช้ TARGET_NAME (ตัวระบุชื่อย่อที่คุณกำหนดเอง) กับทรัพยากร Firebase หรือกลุ่มของทรัพยากร Firebase Firebase รองรับเป้าหมายการทำให้ใช้งานได้สำหรับ:

การตั้งค่าสำหรับเป้าหมายการปรับใช้จะถูกจัดเก็บไว้ในไฟล์ .firebaserc ในไดเร็กทอรีโปรเจ็กต์ของคุณ ดังนั้นคุณจึงต้องตั้งค่าเป้าหมายการปรับใช้เพียงครั้งเดียวต่อโปรเจ็กต์

กำหนดเป้าหมายการใช้งานโฮสติ้ง

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

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

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

  • TYPE — ประเภททรัพยากร Firebase ที่เกี่ยวข้อง

    • สำหรับไซต์โฮสติ้งของ Firebase ให้ใช้ hosting
  • 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

ตั้งค่าเป้าหมายการทำให้ใช้งานได้สำหรับ Cloud Storage หรือ Realtime Database

หากต้องการสร้างเป้าหมายการทำให้ใช้งานได้และใช้ TARGET_NAME กับชุดของ Cloud Storage หรือทรัพยากรฐานข้อมูลเรียลไทม์ ให้เรียกใช้คำสั่ง CLI ต่อไปนี้:

firebase target:apply TYPE TARGET_NAME RESOURCE-1_IDENTIFIER RESOURCE-2_IDENTIFIER ...

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

  • TYPE — ประเภททรัพยากร Firebase ที่เกี่ยวข้อง

    • สำหรับที่เก็บข้อมูล Cloud Storage ให้ใช้ storage
    • สำหรับอินสแตนซ์ฐานข้อมูลเรียลไทม์ ให้ใช้ database
  • TARGET_NAME — ชื่อที่ไม่ซ้ำกันสำหรับทรัพยากรหรือกลุ่มทรัพยากรที่ใช้กฎความปลอดภัยร่วมกัน

  • RESOURCE_IDENTIFIER — ตัวระบุสำหรับทรัพยากร ตามที่ระบุไว้ในโปรเจ็กต์ Firebase ของคุณ (เช่น ชื่อที่เก็บข้อมูลหรือ ID อินสแตนซ์ฐานข้อมูล) ที่ทั้งหมดใช้กฎความปลอดภัยเดียวกัน

ตัวอย่างเช่น คุณสามารถใช้ TARGET_NAME ของ main กับกลุ่มที่เก็บข้อมูล Cloud Storage ระดับภูมิภาค 3 รายการ (ซึ่งทั้งหมดใช้กฎความปลอดภัยเดียวกัน) โดยการเรียกใช้คำสั่งต่อไปนี้:

firebase target:apply storage main myproject.appspot.com myproject-eu myproject-ja

โปรดทราบว่า myproject.appspot.com เป็นตัวระบุสำหรับบัคเก็ตเริ่มต้น ในขณะที่ myproject-eu และ myproject-ja เป็นตัวระบุบัคเก็ตเพิ่มเติมอีก 2 รายการที่สร้างขึ้นในโปรเจ็กต์ Firebase

กำหนดค่าไฟล์ firebase.json เพื่อใช้เป้าหมายการทำให้ใช้งานได้

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

  1. สร้างอาร์เรย์ของออบเจ็กต์การกำหนดค่าสำหรับทรัพยากร Firebase แต่ละ TYPE ( hosting storage หรือ database )
  2. ในอาร์เรย์ ให้ระบุ target (โดยใช้ TARGET_NAME ) และกำหนดการตั้งค่าของคุณสำหรับทรัพยากร Firebase ที่เกี่ยวข้องหรือกลุ่มของทรัพยากร

ดำเนินการต่อจากตัวอย่างด้านบน โดยที่โปรเจ็กต์ Firebase ของคุณมีเว็บไซต์โฮสติ้ง 2 แห่งและที่เก็บข้อมูล Cloud Storage 3 รายการ (ที่ใช้กฎความปลอดภัยเหมือนกัน) ไฟล์ 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
    }
  ]
}

{
  "storage": [ {
      "target": "main",  // "main" is the applied TARGET_NAME for the group of Cloud Storage buckets
      "rules": "storage.main.rules"  // the file that contains the shared security rules
    }
  ]
}

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

จัดการเป้าหมายการใช้งาน

การตั้งค่าสำหรับเป้าหมายการปรับใช้จะถูกจัดเก็บไว้ในไฟล์ .firebaserc ในไดเร็กทอรีโปรเจ็กต์ของคุณ คุณสามารถจัดการเป้าหมายการปรับใช้ของโปรเจ็กต์ได้โดยการรันคำสั่งต่อไปนี้จากรากของไดเร็กทอรีโปรเจ็กต์ของคุณ

สั่งการ คำอธิบาย
firebase target แสดงรายการเป้าหมายการปรับใช้สำหรับไดเร็กทอรีโปรเจ็กต์ปัจจุบันของคุณ
firebase target:remove \
TYPE RESOURCE_IDENTIFIER
ลบทรัพยากรออกจากเป้าหมายที่ได้รับมอบหมาย
firebase target:clear \
TYPE TARGET_NAME
ลบทรัพยากรหรือไซต์โฮสติ้งทั้งหมดออกจากเป้าหมายที่ระบุ

คำสั่ง target:remove และ target:clear จะอัปเดตการตั้งค่าเป้าหมายการปรับใช้โดยอัตโนมัติในไฟล์ .firebaserc ในไดเร็กทอรีโปรเจ็กต์ของคุณ

ทดสอบในเครื่องก่อนที่จะปรับใช้

รันคำสั่งต่อไปนี้จากรากของไดเร็กทอรีโปรเจ็กต์ของคุณ

สั่งการ คำอธิบาย
firebase emulators:start จำลอง ทรัพยากร ที่กำหนดค่าไว้ในไดเรกทอรีโครงการของคุณ
firebase emulators:start \
--only hosting: TARGET_NAME
จำลองเฉพาะเนื้อหาโฮสติ้งและการกำหนดค่าของไซต์โฮสติ้งที่ระบุ
firebase emulators:start \
--only storage: TARGET_NAME
จำลองเฉพาะไฟล์กฎสำหรับเป้าหมาย Cloud Storage ที่ระบุ
firebase emulators:start \
--only database: TARGET_NAME
จำลองเฉพาะไฟล์กฎสำหรับเป้าหมายฐานข้อมูลเรียลไทม์ที่ระบุ

เรียนรู้เพิ่มเติมเกี่ยวกับการกำหนดค่าและการใช้ Firebase Local Emulator Suite

ปรับใช้ทรัพยากร Firebase เฉพาะ

รันคำสั่งต่อไปนี้จากรากของไดเร็กทอรีโปรเจ็กต์ของคุณ

สั่งการ คำอธิบาย
firebase deploy สร้างการเผยแพร่ทรัพยากรที่สามารถปรับใช้ได้ ทั้งหมด ในไดเรกทอรีโครงการของคุณ
firebase deploy \
--only hosting: TARGET_NAME
ปรับใช้เฉพาะเนื้อหาโฮสติ้งและการกำหนดค่าของไซต์โฮสติ้งที่ระบุกับช่องถ่ายทอดสดสำหรับไซต์
firebase hosting:channel:deploy CHANNEL_ID \
--only TARGET_NAME
ปรับใช้เฉพาะเนื้อหาโฮสติ้งและการกำหนดค่าของไซต์โฮสติ้งที่ระบุไปยัง ช่องทางแสดงตัวอย่าง สำหรับไซต์
firebase deploy \
--only storage: TARGET_NAME
ทำให้ใช้งานได้เฉพาะไฟล์กฎสำหรับเป้าหมาย Cloud Storage ที่ระบุ
firebase deploy \
--only database: TARGET_NAME
ปรับใช้เฉพาะไฟล์กฎสำหรับเป้าหมายฐานข้อมูลเรียลไทม์ที่ระบุ