ทำให้เป้าหมายใช้งานได้

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

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

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

วิธีตั้งค่าเป้าหมายการนําไปใช้งาน

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

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

ตั้งค่าเป้าหมายการนําไปใช้สําหรับทรัพยากร Firebase

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

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

ตั้งค่าเป้าหมายการนําไปใช้สําหรับ Hosting

หากต้องการสร้างเป้าหมายการนําส่งและใช้ TARGET_NAME กับเว็บไซต์ Hosting ให้เรียกใช้คําสั่ง CLI ต่อไปนี้

firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER

โดยพารามิเตอร์มีดังนี้

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

    • สําหรับเว็บไซต์ Firebase Hosting ให้ใช้ hosting
  • 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

ตั้งค่าเป้าหมายการนําไปใช้สําหรับ 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.firebasestorage.app myproject-eu myproject-ja

โปรดทราบว่า myproject.firebasestorage.app คือตัวระบุของที่เก็บข้อมูลเริ่มต้น ส่วน 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 มีเว็บไซต์ Hosting 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
นําทรัพยากรหรือเว็บไซต์ Hosting ทั้งหมดออกจากเป้าหมายที่ระบุ

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

ทดสอบในเครื่องก่อนทำให้ใช้งานได้

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

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

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

ติดตั้งใช้งานทรัพยากร Firebase ที่เฉพาะเจาะจง

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

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