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

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

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

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

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

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

เมื่อคุณเรียกใช้คำสั่ง CLI Firebase (เช่น firebase deploy) CLI ของ Firebase จะจับคู่ 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 ระดับภูมิภาค (ซึ่งมีกฎความปลอดภัยเดียวกันทั้งหมด) โดยเรียกใช้คำสั่งต่อไปนี้

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 ของคุณมี เว็บไซต์ Hosting รายการและที่เก็บข้อมูล 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 ที่ระบุ