เป้าหมายการทําให้ใช้งานได้คือตัวระบุชื่อย่อ (ที่คุณกําหนดเอง) สําหรับทรัพยากร Firebase ในโปรเจ็กต์ Firebase เช่น เว็บไซต์ Hosting ที่มีองค์ประกอบแบบคงที่ที่ไม่ซ้ำกัน หรือกลุ่มอินสแตนซ์ Realtime Database ที่ใช้กฎการรักษาความปลอดภัยเดียวกัน
เป้าหมายการทําให้การเผยแพร่ใช้งานได้จะมีประโยชน์เมื่อคุณมีเว็บไซต์ Hosting หลายแห่ง บัคเก็ต Cloud Storage หลายรายการ หรืออินสแตนซ์ Realtime Database หลายรายการ เมื่อใช้เป้าหมายการนําส่ง Firebase CLI จะนําส่งการตั้งค่าไปยังทรัพยากร Firebase หรือกลุ่มทรัพยากรที่เฉพาะเจาะจงในโปรเจ็กต์ได้ เช่น
- การกําหนดค่าโฮสติ้งสําหรับเว็บไซต์ Hosting แต่ละเว็บไซต์
- ชิ้นงานแบบคงที่จากไดเรกทอรีโปรเจ็กต์สำหรับHostingเว็บไซต์แต่ละแห่ง
- กฎความปลอดภัยที่อินสแตนซ์ Realtime Database หลายรายการหรือที่เก็บข้อมูล Cloud Storage หลายรายการใช้ร่วมกัน
วิธีตั้งค่าเป้าหมายการนําไปใช้งาน
- ใช้
TARGET_NAME
กับทรัพยากร Firebase หรือกลุ่มทรัพยากร Firebase เป้าหมาย - ในไฟล์
firebase.json
ให้อ้างอิงTARGET_NAME
ที่เชื่อมโยงเมื่อคุณกําหนดการตั้งค่าสําหรับทรัพยากรหรือกลุ่มทรัพยากรแต่ละรายการ
เมื่อคุณเรียกใช้คำสั่ง CLI ของ Firebase (เช่น firebase deploy
) Firebase CLI จะจับคู่ TARGET_NAME
แต่ละรายการกับทรัพยากร Firebase ที่เชื่อมโยง จากนั้น CLI จะสื่อสารการตั้งค่าสำหรับแต่ละทรัพยากรกับโปรเจ็กต์ Firebase
ตั้งค่าเป้าหมายการนําไปใช้สําหรับทรัพยากร Firebase
ใช้ Firebase CLI เพื่อใช้ TARGET_NAME
(ตัวระบุชื่อย่อที่คุณกำหนดเอง) กับทรัพยากร Firebase หรือกลุ่มทรัพยากร Firebase
Firebase รองรับเป้าหมายการนําส่งสําหรับรายการต่อไปนี้
- Firebase Hosting sites
- ที่เก็บข้อมูล Cloud Storage for Firebase
- Firebase Realtime Database อินสแตนซ์
ระบบจะจัดเก็บการตั้งค่าสำหรับเป้าหมายการนําส่งไว้ในไฟล์ .firebaserc
ในไดเรกทอรีโปรเจ็กต์ คุณจึงต้องตั้งค่าเป้าหมายการนําส่งเพียงครั้งเดียวต่อโปรเจ็กต์
ตั้งค่าเป้าหมายการนําไปใช้สําหรับ Hosting
หากต้องการสร้างเป้าหมายการนําส่งและใช้ TARGET_NAME
กับเว็บไซต์ Hosting ให้เรียกใช้คําสั่ง CLI ต่อไปนี้
firebase target:apply TYPE TARGET_NAME RESOURCE_IDENTIFIER
โดยพารามิเตอร์มีดังนี้
TYPE — ประเภททรัพยากร Firebase ที่เกี่ยวข้อง
- สําหรับเว็บไซต์ Firebase Hosting ให้ใช้
hosting
- สําหรับเว็บไซต์ Firebase Hosting ให้ใช้
TARGET_NAME — ชื่อที่ไม่ซ้ำกันสำหรับเว็บไซต์ Hosting ที่คุณจะนำไปใช้
RESOURCE_IDENTIFIER —
SITE_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
- สำหรับที่เก็บข้อมูล Cloud Storage ให้ใช้
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
- สร้างอาร์เรย์ของออบเจ็กต์การกําหนดค่าสําหรับทรัพยากร Firebase แต่ละรายการ
TYPE
(hosting
,storage
หรือdatabase
) - ในอาร์เรย์ ให้ระบุ
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 \
|
นำทรัพยากรออกจากเป้าหมายที่กำหนดไว้ |
firebase target:clear \
|
นําทรัพยากรหรือเว็บไซต์ Hosting ทั้งหมดออกจากเป้าหมายที่ระบุ |
คำสั่ง target:remove
และ target:clear
จะอัปเดตการตั้งค่าเป้าหมายการทำให้ใช้งานได้ในไฟล์ .firebaserc
ในไดเรกทอรีโปรเจ็กต์โดยอัตโนมัติ
ทดสอบในเครื่องก่อนทำให้ใช้งานได้
เรียกใช้คำสั่งต่อไปนี้จากรูทของไดเรกทอรีโปรเจ็กต์
คำสั่ง | คำอธิบาย |
---|---|
firebase emulators:start
|
จําลองทรัพยากรที่กําหนดค่าไว้ทั้งหมดในไดเรกทอรีโปรเจ็กต์ |
firebase emulators:start \ |
จำลองเฉพาะเนื้อหาและการกำหนดค่า Hosting ของเว็บไซต์ Hosting ที่ระบุ |
firebase emulators:start \
|
จำลองเฉพาะไฟล์กฎสําหรับเป้าหมาย Cloud Storage ที่ระบุ |
firebase emulators:start \
|
จำลองเฉพาะไฟล์กฎสําหรับเป้าหมาย Realtime Database ที่ระบุ |
ดูข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าและใช้ Firebase Local Emulator Suite
ติดตั้งใช้งานทรัพยากร Firebase ที่เฉพาะเจาะจง
เรียกใช้คำสั่งใดก็ได้ต่อไปนี้จากรูทของไดเรกทอรีโปรเจ็กต์
คำสั่ง | คำอธิบาย |
---|---|
firebase deploy
|
สร้างรุ่นของทรัพยากรที่ทั้งหมดซึ่งสามารถทำให้ใช้งานได้ในไดเรกทอรีโปรเจ็กต์ |
firebase deploy \
|
ติดตั้งใช้งานเฉพาะเนื้อหา Hosting และการกำหนดค่าของเว็บไซต์ Hosting ที่ระบุไปยังแชแนลที่เผยแพร่อยู่ของเว็บไซต์ |
firebase hosting:channel:deploy CHANNEL_ID \ |
ติดตั้งใช้งานเฉพาะเนื้อหาและการกำหนดค่า Hosting ของเว็บไซต์ Hosting ที่ระบุไปยังแชแนลตัวอย่างของเว็บไซต์ |
firebase deploy \
|
ติดตั้งใช้งานเฉพาะไฟล์กฎสําหรับเป้าหมาย Cloud Storage ที่ระบุ |
firebase deploy \
|
ติดตั้งใช้งานเฉพาะไฟล์กฎสําหรับเป้าหมาย Realtime Database ที่ระบุ |