Firebase CLI เป็นเครื่องมือที่ช่วยให้คุณจัดการและกําหนดค่าผลิตภัณฑ์และบริการของ Firebase จากบรรทัดคําสั่งได้
CLI มีคำสั่งที่ใช้ทําData Connectงานได้หลากหลาย เช่น การสร้างData Connectโปรเจ็กต์ใหม่ เริ่มต้นไดเรกทอรีทํางานในเครื่องที่เกี่ยวข้อง ตั้งค่าData Connectโปรแกรมจําลอง แสดงรายการData Connectทรัพยากร การสร้าง SDK ของไคลเอ็นต์ และอื่นๆ
คำสั่งการตั้งค่า
เพิ่ม Data Connect ไปยังโปรเจ็กต์ Firebase
firebase init
ใช้ firebase init
เพื่อตั้งค่าการกําหนดค่าโปรเจ็กต์ในเครื่องใหม่ เวิร์กโฟลว์นี้จะสร้างหรืออัปเดตไฟล์การกําหนดค่า Firebase ในไดเรกทอรี
firebase init
ขั้นตอน firebase init
จะแนะนำคุณในการตั้งค่าบริการและฐานข้อมูล รวมถึงการติดตั้งโปรแกรมจำลอง Data Connect (ไม่บังคับ) และการกำหนดค่า SDK ที่สร้างขึ้น
การตั้งค่าบริการและฐานข้อมูล
หากเลือก dataconnect
สำหรับการตั้งค่าผลิตภัณฑ์ CLI จะแจ้งให้คุณป้อนชื่อและตำแหน่งบริการใหม่ รวมถึงถามว่าต้องการลิงก์และอินสแตนซ์ Cloud SQL for PostgreSQL ที่มีอยู่หรือสร้างอินสแตนซ์ใหม่
หากลิงก์อินสแตนซ์ที่มีอยู่ไว้แล้ว CLI จะตรวจสอบการตั้งค่าที่เข้ากันได้ เช่น การตรวจสอบสิทธิ์ IAM และที่อยู่ IP สาธารณะ
การตั้งค่า Local Emulator Suite
ขั้นตอน CLI จะเสนอให้ตั้งค่าโปรแกรมจำลอง ซึ่งรวมถึงโปรแกรมจำลอง Data Connect
Data Connect คำสั่งโปรแกรมจำลอง
เริ่มโปรแกรมจำลอง Data Connect
emulators:start/exec
firebase emulators:start/exec
ใช้โปรแกรมจำลอง Data Connect เวอร์ชัน Local Emulator Suite ในโหมดอินเทอร์แอกทีฟกับ start
หรือโหมดที่ไม่ใช่อินเทอร์แอกทีฟซึ่งทำงานด้วยสคริปต์กับ exec
คำสั่งการจัดการสคีมาและเครื่องมือเชื่อมต่อ
ส่วนนี้มีข้อมูลอ้างอิง CLI สําหรับคําสั่งที่คุณใช้จัดการสคีมาและตัวเชื่อมต่อ
ดูวิธีใช้กรณีการใช้งานและแนวทางปฏิบัติที่แนะนำเกี่ยวกับคําสั่งเหล่านี้ได้ที่คู่มือการจัดการสคีมาและเครื่องมือเชื่อมต่อ
ติดตั้งใช้งานสคีมาและทรัพยากรเครื่องมือเชื่อมต่อ
ทำให้ใช้งานได้
firebase deploy
คำสั่งนี้จะติดตั้งใช้งานทรัพยากรสำหรับบริการ Data Connect ที่จัดทำดัชนีใน firebase.json ระบบจะทําการย้ายสคีมาหากจําเป็น
คำสั่ง | คำอธิบาย | |
---|---|---|
firebase deploy |
แจ้ง | คำอธิบาย |
–-only dataconnect |
ติดตั้งสคีมาและตัวเชื่อมต่อสําหรับบริการเชื่อมต่อข้อมูลทั้งหมดสําหรับโปรเจ็กต์นี้ แต่อย่าติดตั้งแหล่งข้อมูลผลิตภัณฑ์ Firebase อื่นๆ | |
–-only dataconnect:serviceId |
ติดตั้งสคีมาและเครื่องมือเชื่อมต่อสําหรับบริการเชื่อมต่อข้อมูลที่ระบุ | |
–-only dataconnect:serviceId:connectorId |
ติดตั้งใช้งานเครื่องมือเชื่อมต่อเดียวสําหรับบริการ Data Connect ที่ระบุ | |
–-only dataconnect:serviceId:schema |
ติดตั้งใช้งานสคีมาสำหรับบริการ Data Connect ที่ระบุ |
การใช้ Flag –-only
จะช่วยให้คุณส่งค่าที่คั่นด้วยคอมมาเพื่อติดตั้งใช้งานชุดย่อยของทรัพยากรที่ต้องการได้
firebase deploy --only dataconnect:service1:schema,dataconnect:service2
แสดงรายการบริการสคีมา และเครื่องมือเชื่อมต่อข้อมูลของ Data Connect
dataconnect:services:list
firebase dataconnect:services:list
คำสั่งนี้จะแสดงข้อมูลพื้นฐานเกี่ยวกับบริการ สคีมา และคอนเน็กเตอร์ที่ติดตั้งใช้งานในโปรเจ็กต์
เปรียบเทียบและย้ายสคีมา SQL
dataconnect:sql:diff
firebase dataconnect:sql:diff
คำสั่งนี้จะเปรียบเทียบสคีมาภายในสำหรับบริการกับสคีมาปัจจุบันของฐานข้อมูล Cloud SQL ที่เกี่ยวข้อง ซึ่งจะแสดงคำสั่งที่จะเรียกใช้เพื่อย้ายข้อมูลฐานข้อมูลไปยังสคีมาใหม่
คำสั่ง | คำอธิบาย | |
---|---|---|
firebase dataconnect:sql:diff |
Flag/Parameter | คำอธิบาย |
serviceId |
ระบุบริการ หากไม่ระบุ ระบบจะพิมพ์ความแตกต่างของบริการทั้งหมดใน firebase.json |
dataconnect:sql:migrate
firebase dataconnect:sql:migrate
คำสั่งนี้จะนําการเปลี่ยนแปลงสคีมาภายในไปใช้กับฐานข้อมูล Cloud SQL ของบริการ
เมื่อคุณตั้งค่าโปรเจ็กต์ Data Connect ใหม่ในเครื่องโดยใช้ไฟล์ dataconnect.yaml
เริ่มต้น ลักษณะการทํางานของคําสั่ง dataconect:sql:migrate
คือการแจ้งให้คุณทราบถึงการเปลี่ยนแปลงที่จําเป็น จากนั้นจะแจ้งให้คุณทราบถึงการเปลี่ยนแปลงที่ไม่บังคับก่อนดําเนินการเปลี่ยนแปลง คุณสามารถแก้ไขลักษณะการทํางานนี้ให้รวมหรือละเว้นการเปลี่ยนแปลงที่ไม่บังคับได้เสมอโดยการอัปเดตการกําหนดค่า dataconnect.yaml
ตามที่อธิบายไว้ในย้ายสคีมาในโหมดที่เข้มงวดหรือโหมดที่เข้ากันได้
ในสภาพแวดล้อมแบบอินเทอร์แอกทีฟ CLI จะแสดงคำสั่ง SQL สำหรับการย้ายข้อมูลแต่ละรายการ (และระบุว่าเป็นคำสั่งแบบทำลายหรือไม่) และแจ้งให้ป้อนการเปลี่ยนแปลงที่ต้องการใช้
การส่ง Flag --force
เทียบเท่ากับการยอมรับพรอมต์ทั้งหมด
ในสภาพแวดล้อมแบบไม่โต้ตอบ
- โดยไม่มี
--force
ระบบจะทำการเปลี่ยนแปลงที่ไม่ทำลายข้อมูลเท่านั้น หากมีการเปลี่ยนแปลงที่ก่อให้เกิดความเสียหาย CLI จะหยุดดำเนินการโดยไม่มีการเปลี่ยนแปลง - กับ
--force
จะเป็นการเปลี่ยนแปลงทั้งหมด หากมีการเปลี่ยนแปลงที่ลบล้างข้อมูล ระบบจะพิมพ์การเปลี่ยนแปลงดังกล่าวและแจ้งให้คุณทราบว่าต้องการดำเนินการต่อหรือไม่ เว้นแต่จะมีการระบุ Flag--force
คำสั่ง | คำอธิบาย | |
---|---|---|
firebase dataconnect:sql:migrate |
แจ้ง | คำอธิบาย |
serviceId |
ย้ายข้อมูลฐานข้อมูลของบริการที่ระบุ ระบบจะอนุมาน serviceId หากโปรเจ็กต์มีบริการเพียงบริการเดียว | |
–-force |
ตอบกลับพรอมต์โดยอัตโนมัติ |
คุณสามารถระบุบริการหลายรายการโดยคั่นด้วยคอมมาได้ เช่นเดียวกับ Flag --only
อื่นๆ
ย้ายข้อมูลสคีมาในโหมดจำกัดหรือโหมดที่เข้ากันได้
การย้ายข้อมูลสคีมา Data Connect มีโหมดการตรวจสอบสคีมา 2 โหมด ได้แก่ เข้มงวดและเข้ากันได้ การตรวจสอบในโหมดที่เข้มงวดกำหนดให้สคีมาฐานข้อมูลต้องตรงกับสคีมาแอปพลิเคชันทุกประการก่อนจึงจะติดตั้งใช้งานสคีมาแอปพลิเคชันได้ การตรวจสอบโหมดที่เข้ากันได้กำหนดให้สคีมาฐานข้อมูลต้องเข้ากันได้กับสคีมาแอปพลิเคชัน ซึ่งหมายความว่าองค์ประกอบในฐานข้อมูลที่สคีมาแอปพลิเคชันไม่ได้ใช้จะไม่ได้รับการแก้ไข
โหมดการตรวจสอบสคีมาและแนวทางปฏิบัติแนะนำสำหรับการย้ายข้อมูลสคีมาเหล่านี้จะอยู่ในคู่มือการจัดการสคีมาและคอนเน็กเตอร์
โหมดการตรวจสอบจะกำหนดโดยใช้คีย์ schemaValidation
ในไฟล์ dataconnect.yaml
หากไม่ได้ระบุ schemaValidation
ไว้ CLI จะใช้การเปลี่ยนแปลงที่เข้ากันได้และแจ้งให้คุณทราบก่อนทำการเปลี่ยนแปลงที่เข้มงวด ดูข้อมูลอ้างอิงการกําหนดค่า
คำสั่ง SDK
สร้าง SDK
dataconnect:sdk:generate
firebase dataconnect:sdk:generate
คำสั่งนี้จะสร้าง SDK ที่มีประเภทซึ่งประกาศไว้ใน connector.yaml
นอกจากนี้ โปรดดูคําแนะนําสําหรับการใช้ SDK เว็บ, SDK ของ Android และ SDK ของ iOS
คำสั่ง | คำอธิบาย | |
---|---|---|
firebase dataconnect:sdk:generate |
แจ้ง | คำอธิบาย |
–-watch |
ดำเนินการต่อและสร้าง SDK ใหม่ทุกครั้งที่คุณบันทึกการเปลี่ยนแปลงสคีมาและไฟล์ GQL ของคอนเน็กเตอร์ หากการสร้างไม่สำเร็จ ระบบจะพิมพ์ข้อผิดพลาดไปยัง stdout โค้ดที่สร้างขึ้นจะไม่มีการเปลี่ยนแปลง และระบบจะเรียกใช้คำสั่งต่อไป |
|
–-only connectorId:platform |
สร้าง SDK สําหรับแพลตฟอร์มและตัวเชื่อมต่อเดียวเท่านั้น |
คุณส่งค่าที่คั่นด้วยคอมมาได้โดยใช้ Flag –only
firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin
คำสั่งการจัดการ Cloud SQL
ให้บทบาท SQL สำหรับ Cloud SQL
dataconnect:sql:grant
firebase dataconnect:sql:grant
Data Connect ทำงานบนอินสแตนซ์ PostgreSQL ของคุณเองที่โฮสต์ใน Cloud SQL ในบางกรณี คุณอาจต้องการเข้าถึงฐานข้อมูลโดยตรงเพื่อค้นหาหรืออัปเดตข้อมูลที่แอป Data Connect สร้างขึ้น โดยจะต้องมอบบทบาทใดบทบาทหนึ่งที่กำหนดไว้ในส่วนนี้ให้กับผู้ใช้หรือบัญชีบริการที่ต้องการ
โปรดดูรายละเอียดเกี่ยวกับบทบาทที่ได้รับที่หัวข้อบทบาทผู้ใช้ PostgreSQL
บทบาท | บทบาท SQL | สิทธิ์ | การใช้งาน | ให้สิทธิ์ได้ |
---|---|---|---|---|
ผู้อ่าน | firebasereader_<db_name>_<schema_name> |
สิทธิ์การอ่านอย่างเดียวในฐานข้อมูล ดําเนินการ SELECT ในตารางทั้งหมดภายในสคีมาที่ระบุได้ |
เหมาะสำหรับผู้ใช้หรือบริการที่ต้องดึงข้อมูลแต่ไม่ต้องแก้ไข | ใช่ |
ผู้เขียน | firebasewriter_<db_name>_<schema_name> |
สิทธิ์การอ่านและการเขียนฐานข้อมูล ดําเนินการ SELECT , INSERT , UPDATE , DELETE และ TRUNCATE ในตารางทั้งหมดภายในสคีมาได้ |
เหมาะสำหรับผู้ใช้หรือบริการที่ต้องแก้ไขข้อมูลภายในฐานข้อมูล | ใช่ |
เจ้าของ | firebaseowner_<db_name>_<schema_name> |
เจ้าของสคีมา มีสิทธิ์ทั้งหมดในตารางและลําดับทั้งหมดในสคีมา |
บทบาทนี้ร่วมกับบทบาท IAM roles/cloudsql.client จะมอบสิทธิ์ในการย้ายข้อมูลในฐานข้อมูล เช่น เมื่อโทรหา firebase dataconnect:sql:migrate |
ใช่ |
ผู้ใช้ระดับสูง | cloudsqlsuperuser |
บทบาทผู้ใช้ขั้นสูงในตัวที่มีสิทธิ์เต็มรูปแบบในฐานข้อมูล นอกเหนือจากสิทธิ์ระดับเจ้าของแล้ว ผู้ใช้ดังกล่าวยังสร้างสคีมา วางสคีมา ติดตั้งส่วนขยาย และดําเนินการด้านการดูแลระบบอื่นๆ ได้ด้วย เข้าถึงใน CLI โดยการเข้าสู่ระบบเป็น "firebasesuperuser" |
จําเป็นสําหรับการติดตั้งส่วนขยาย การสร้างสคีมาเริ่มต้น และการให้บทบาท SQL ที่มอบสิทธิ์ได้แก่ผู้ใช้รายอื่น หากผู้ใช้ที่ไม่ใช่ผู้ดูแลระบบต้องการสิทธิ์ระดับผู้ดูแลระบบขั้นสูง การย้ายข้อมูลจะไม่สำเร็จและแจ้งให้ผู้ใช้ขอให้ผู้ดูแลระบบฐานข้อมูล (นั่นคือผู้ใช้ที่มี roles/cloudsql.admin ) เรียกใช้คําสั่ง SQL ที่มีสิทธิ์ |
ให้สิทธิ์แก่ผู้ใช้ที่มี roles/cloudsql.admin และไม่สามารถให้สิทธิ์จาก Firebase CLI ได้โดยตรง |
คำสั่ง | คำอธิบาย | |
---|---|---|
firebase dataconnect:sql:grant |
Flag/Parameter | คำอธิบาย |
-R, --role role |
บทบาท SQL ที่จะให้สิทธิ์ ซึ่งได้แก่ เจ้าของ ผู้เขียน หรือผู้อ่าน | |
-E, --email email_address |
อีเมลของผู้ใช้หรือบัญชีบริการที่จะมอบบทบาทให้ |
ตัวเลือกส่วนกลาง
ตัวเลือกส่วนกลางต่อไปนี้มีผลกับคำสั่งทั้งหมด
--json
สลับเอาต์พุต CLI เป็น JSON เพื่อให้เครื่องมืออื่นๆ แยกวิเคราะห์ได้--noninteractive
และ--interactive
จะลบล้างการตรวจหาสภาพแวดล้อมที่ไม่ใช่ TTY โดยอัตโนมัติตามที่จำเป็น