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