ใช้งานเป้าหมาย

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

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

  • การกำหนดค่าโฮสติ้งสำหรับเว็บไซต์โฮสติ้งแต่ละเว็บ
  • ชิ้นงานแบบคงที่จากไดเรกทอรีโปรเจ็กต์สำหรับเว็บไซต์โฮสติ้งแต่ละแห่ง
  • กฎความปลอดภัยที่แชร์โดยอินสแตนซ์ Realtime Database หลายรายการหรือที่เก็บข้อมูล 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

เช่น หากคุณสร้าง 2 เว็บไซต์ (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 หรือ Realtime Database ให้เรียกใช้คำสั่ง CLI ต่อไปนี้

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

ตำแหน่งของพารามิเตอร์

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

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

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

เช่น คุณอาจใช้ 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
จำลองเฉพาะไฟล์กฎสำหรับเป้าหมาย Realtime Database ที่ระบุ

ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าและการใช้ชุดโปรแกรมจำลองภายในของ Firebase

ทำให้ทรัพยากร 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
ทำให้เฉพาะไฟล์กฎใช้งานได้สำหรับเป้าหมาย Realtime Database ที่ระบุ