การอ้างอิงคำสั่ง Firebase CLI สำหรับ Data Connect

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 โดยอัตโนมัติตามที่จำเป็น