Firebase CLI एक ऐसा टूल है जिसकी मदद से, कमांड-लाइन से Firebase के प्रॉडक्ट और सेवाओं को मैनेज और कॉन्फ़िगर किया जा सकता है.
सीएलआई में ऐसे निर्देश होते हैं जिनका इस्तेमाल कई तरह के Data Connect टास्क करने के लिए किया जा सकता है. जैसे, नया Data Connect प्रोजेक्ट बनाना, उससे जुड़ी लोकल वर्किंग डायरेक्ट्री को शुरू करना, Data Connect एमुलेटर सेट अप करना, Data Connect संसाधनों की सूची बनाना, क्लाइंट SDK जनरेट करना वगैरह.
सेटअप करने के लिए निर्देश
Data Connect को Firebase प्रोजेक्ट से जोड़ना
firebase init
नया स्थानीय प्रोजेक्ट कॉन्फ़िगरेशन सेट अप करने के लिए, firebase init
का इस्तेमाल करें. यह वर्कफ़्लो, आपकी डायरेक्ट्री में Firebase कॉन्फ़िगरेशन फ़ाइलें बनाता है या अपडेट करता है.
firebase init
firebase init
फ़्लो की मदद से, सेवा और डेटाबेस को सेट अप करने के साथ-साथ, Data Connect एमुलेटर को इंस्टॉल करने और जनरेट किए गए एसडीके टूल को कॉन्फ़िगर करने का तरीका भी बताया जाता है. हालांकि, ऐसा करना ज़रूरी नहीं है.
सेवा और डेटाबेस का सेटअप
अगर आपने प्रॉडक्ट सेटअप के लिए dataconnect
चुना है, तो सीएलआई आपको नई सेवा का नाम और जगह पूछेगा. साथ ही, यह भी पूछेगा कि आपको 'PostgreSQL के लिए Cloud SQL' के किसी मौजूदा इंस्टेंस को लिंक करना है या नया इंस्टेंस बनाना है.
अगर कोई मौजूदा इंस्टेंस लिंक किया गया है, तो सीएलआई काम करने वाली सेटिंग की जांच करता है. जैसे, आईएएम पुष्टि और सार्वजनिक आईपी पते.
Local Emulator Suite सेटअप
सीएलआई फ़्लो में, Data Connect एम्युलेटर के साथ-साथ एम्युलेटर सेट अप करने का विकल्प भी मिलता है.
Data Connect एम्युलेटर के निर्देश
Data Connect एम्युलेटर शुरू करना
emulators:start/exec
firebase emulators:start/exec
Data Connect एमुलेटर के Local Emulator Suite वर्शन का इस्तेमाल, start
के साथ इंटरैक्टिव मोड में या exec
के साथ स्क्रिप्ट-ड्रिवन, नॉन-इंटरैक्टिव मोड में करें.
स्थानीय PostgreSQL डेटा को एक्सपोर्ट और इंपोर्ट करना
स्थानीय प्रोटोटाइप और टेस्टिंग के साथ-साथ, लगातार इंटिग्रेशन के लिए, किसी लोकल डेटाबेस इंस्टेंस में सेव किए गए डेटा को एक्सपोर्ट किया जा सकता है. साथ ही, उसे डेवलपमेंट के चरणों और टेस्ट रन के बीच इंपोर्ट किया जा सकता है.
एक्सपोर्ट, आपके स्थानीय PostgreSQL डेटाबेस के स्नैपशॉट के तौर पर सेव किए जाते हैं.
Data Connect में, डेटा एक्सपोर्ट/इंपोर्ट करने के तीन तरीके उपलब्ध हैं:
- आपके
firebase.json
में कॉन्फ़िगर किया गया, अपने-आप एक्सपोर्ट/इंपोर्ट होने की सुविधा, ताकि एमुलेटर के बंद होने और चालू होने पर स्नैपशॉट बैकअप मिल सके - सीएलआई का इस्तेमाल करके, मैन्युअल तरीके से डेटा एक्सपोर्ट/इंपोर्ट करना
- VS Code एक्सटेंशन इंटरफ़ेस का इस्तेमाल करके, मैन्युअल तरीके से एक्सपोर्ट/इंपोर्ट करना
आपके firebase.json
में कॉन्फ़िगर किया गया, डेटा अपने-आप एक्सपोर्ट और इंपोर्ट होना
डेवलपमेंट सेशन के बीच डेटा का बैक अप लेने के लिए, firebase init
क्रम के दौरान, अपने-आप बैक अप लेने की जगह तय करें. यह जगह, आपके firebase.json
में emulators.dataconnect.dataDir
फ़ील्ड में सेव होती है. आपके किए गए डेटा में हुए सभी बदलाव, इम्यूलेटर के चलने के बीच अपने-आप यहां सेव हो जाएंगे. इसलिए, यह लोकल टेस्टिंग और एक्सप्लोरेशन के दौरान काम आता है.
मैन्युअल तरीके से एक्सपोर्ट करना: emulators:export
और emulators:start/exec --import
Data Connect एमुलेटर के चलने के दौरान, अपने डेटा का स्नैपशॉट सेव करने के लिए, किसी अलग टर्मिनल में firebase emulators:export
कमांड चलाएं.
इसके बाद, --import
फ़्लैग का इस्तेमाल करके, उस स्नैपशॉट से एमुलेटर को शुरू किया जा सकता है.
# Export data from local emulator from a separate terminal
firebase emulators:export --only dataconnect <export_directory>
# Import data from local directory, here using emulators:exec
firebase emulators:exec ./<your-test-script>.sh --only dataconnect --import <import_directory>
मैन्युअल तरीके से एक्सपोर्ट/इंपोर्ट करना: VS Code एक्सटेंशन
एम्युलेटर के चलने के दौरान, VS Code एक्सटेंशन के यूज़र इंटरफ़ेस (यूआई) में, एम्युलेटर का डेटा एक्सपोर्ट करें बटन का इस्तेमाल करके, मौजूदा डेटाबेस का कॉन्टेंट एक्सपोर्ट करें. एक्सपोर्ट करने की डिफ़ॉल्ट जगह, आपकी प्रोजेक्ट डायरेक्ट्री के रूट में मौजूद exportedData
डायरेक्ट्री होती है.
पिछले सेक्शन में बताए गए तरीके से, सीएलआई का इस्तेमाल करके इस डेटा को इंपोर्ट किया जा सकता है. VS Code से एमुलेटर शुरू करने से पहले भी, इस डेटा को इंपोर्ट किया जा सकता है. इसके लिए, एमुलेटर कॉन्फ़िगर करें लिंक पर क्लिक करें और इंपोर्ट पाथ सेट करें.
स्कीमा और कनेक्टर मैनेजमेंट के निर्देश
इस सेक्शन में, स्कीमा और कनेक्टर को मैनेज करने के लिए इस्तेमाल किए जाने वाले कमांड के बारे में सीएलआई रेफ़रंस की जानकारी दी गई है.
इन निर्देशों के इस्तेमाल के उदाहरणों और सुझाए गए तरीकों के बारे में जानने के लिए, स्कीमा और कनेक्टर मैनेजमेंट गाइड देखें.
स्कीमा और कनेक्टर संसाधनों को डिप्लॉय करना
डिप्लॉय करना
firebase deploy
यह कमांड, firebase.json में इंडेक्स की गई Data Connect सेवाओं के लिए संसाधनों को डिप्लॉय करता है. अगर ज़रूरी हो, तो स्कीमा माइग्रेशन किया जाता है.
Command | जानकारी | |
---|---|---|
firebase deploy |
फ़्लैग करें | जानकारी |
–-only dataconnect |
इस प्रोजेक्ट के लिए, Data Connect की सभी सेवाओं के लिए स्कीमा और कनेक्टर डिप्लॉय करें. हालांकि, Firebase के अन्य प्रॉडक्ट के संसाधनों को डिप्लॉय न करें. | |
–-only dataconnect:serviceId |
चुनी गई Data Connect सेवा के लिए स्कीमा और कनेक्टर डिप्लॉय करें. | |
–-only dataconnect:serviceId:connectorId |
किसी खास Data Connect सेवा के लिए, एक कनेक्टर डिप्लॉय करें. | |
–-only dataconnect:serviceId:schema |
चुनी गई Data Connect सेवा के लिए स्कीमा को डिप्लॉय करें. |
–-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 डेटाबेस के मौजूदा स्कीमा से करता है. यह उन निर्देशों को प्रिंट करता है जिन्हें डेटाबेस को आपके नए स्कीमा में माइग्रेट करने के लिए चलाया जाएगा.
Command | जानकारी | |
---|---|---|
firebase dataconnect:sql:diff |
फ़्लैग/पैरामीटर | जानकारी |
serviceId |
सेवा की जानकारी दें. अगर इसे छोड़ा जाता है, तो firebase.json में सभी सेवाओं के लिए, बदलाव की जानकारी प्रिंट करें. |
dataconnect:sql:migrate
firebase dataconnect:sql:migrate
यह कमांड, किसी सेवा के Cloud SQL डेटाबेस में स्थानीय स्कीमा के बदलावों को लागू करता है.
डिफ़ॉल्ट dataconnect.yaml
फ़ाइल के साथ नया स्थानीय Data Connect प्रोजेक्ट सेट अप करने पर, dataconect:sql:migrate
कमांड का काम यह होता है कि वह बदलावों को लागू करने से पहले, आपको ज़रूरी बदलावों के लिए प्रॉम्प्ट करे. इसके बाद, वैकल्पिक बदलावों के लिए भी प्रॉम्प्ट करे. dataconnect.yaml
कॉन्फ़िगरेशन को अपडेट करके, इस व्यवहार को बदला जा सकता है, ताकि वैकल्पिक बदलावों को हमेशा शामिल किया जा सके या उन्हें अनदेखा किया जा सके. इस बारे में स्क्रैमा को स्ट्रिक्ट या काम करने वाले मोड में माइग्रेट करना में बताया गया है
इंटरैक्टिव एनवायरमेंट में, सीएलआई हर माइग्रेशन एसक्यूएल स्टेटमेंट दिखाता है और यह भी बताता है कि वह डेटा को नुकसान पहुंचाता है या नहीं. साथ ही, आपको उन बदलावों के लिए प्रॉम्प्ट करता है जिन्हें आपको लागू करना है.
--force
फ़्लैग पास करना, सभी प्रॉम्प्ट स्वीकार करने के बराबर है.
इंटरैक्टिव नहीं होने वाले एनवायरमेंट में:
--force
के बिना, सिर्फ़ ऐसे बदलाव किए जाते हैं जिनसे डेटा को कोई नुकसान न पहुंचे. अगर कोई ऐसा बदलाव किया जाता है जिससे डेटा को नुकसान पहुंच सकता है, तो सीएलआई प्रोसेस को रद्द कर दिया जाता है और कोई बदलाव नहीं किया जाता.--force
के साथ, सभी बदलाव किए जाते हैं. अगर इसमें कोई ऐसा बदलाव शामिल है जिससे डेटा को नुकसान पहुंच सकता है, तो उसे प्रिंट किया जाता है. साथ ही, आपसे पूछा जाता है कि क्या आपको जारी रखना है. ऐसा तब तक किया जाता है, जब तक--force
फ़्लैग नहीं दिया जाता.
Command | जानकारी | |
---|---|---|
firebase dataconnect:sql:migrate |
फ़्लैग करें | जानकारी |
serviceId |
चुनी गई सेवा के लिए डेटाबेस को माइग्रेट करें. अगर आपके प्रोजेक्ट में सिर्फ़ एक सेवा है, तो serviceId का अनुमान लगाया जाता है. | |
–-force |
प्रॉम्प्ट अपने-आप स्वीकार हो जाएं. |
अन्य --only
फ़्लैग की तरह, एक से ज़्यादा सेवाएं दी जा सकती हैं. इन्हें कॉमा लगाकर अलग किया जा सकता है.
किसी स्कीमा को स्ट्रिक्ट या कम्पैटबिलिटी मोड में माइग्रेट करना
Data Connect स्कीमा माइग्रेशन में, स्कीमा की पुष्टि करने के दो अलग-अलग मोड होते हैं: स्ट्रिक्ट और कंपैटिटबल. सख्त मोड में पुष्टि करने के लिए ज़रूरी है कि ऐप्लिकेशन स्कीमा को डिप्लॉय करने से पहले, डेटाबेस स्कीमा का ऐप्लिकेशन स्कीमा से पूरी तरह मेल खाना चाहिए. कंपैटबिलिटी मोड की पुष्टि करने के लिए ज़रूरी है कि डेटाबेस स्कीमा, ऐप्लिकेशन स्कीमा के साथ काम करता हो. इसका मतलब है कि आपके डेटाबेस में मौजूद ऐसे एलिमेंट जिनका इस्तेमाल आपके ऐप्लिकेशन स्कीमा में नहीं किया जाता है उन्हें बिना बदलाव के छोड़ दिया जाता है.
स्कीमा की पुष्टि करने के इन मोड और स्कीमा माइग्रेशन के सबसे सही तरीकों के बारे में, स्कीमा और कनेक्टर मैनेजमेंट गाइड में बताया गया है
पुष्टि करने के मोड को आपकी dataconnect.yaml
फ़ाइल में मौजूद schemaValidation
कुंजी का इस्तेमाल करके तय किया जाता है. अगर schemaValidation
की वैल्यू नहीं दी गई है, तो सीएलआई, काम करने वाले बदलाव लागू करता है. साथ ही, ज़रूरी बदलाव लागू करने से पहले, आपसे अनुमति लेता है. कॉन्फ़िगरेशन का रेफ़रंस देखें.
SDK टूल के निर्देश
SDK टूल जनरेट करना
dataconnect:sdk:generate
firebase dataconnect:sdk:generate
यह कमांड, connector.yaml में बताए गए टाइप किए गए SDK टूल जनरेट करता है.
वेब SDK टूल, Android SDK टूल, और iOS SDK टूल के साथ काम करने के लिए गाइड भी देखें.
Command | जानकारी | |
---|---|---|
firebase dataconnect:sdk:generate |
फ़्लैग करें | जानकारी |
–-watch |
यह प्रोसेस को चालू रखता है और जब भी आपके स्कीमा और कनेक्टर GQL फ़ाइलों में बदलाव किए जाते हैं, तो नए SDK जनरेट करता है. अगर कोड जनरेट नहीं हो पाता है, तो गड़बड़ियां स्टैंडर्ड आउटपुट पर प्रिंट हो जाएंगी. साथ ही, जनरेट किया गया कोड बदला नहीं जाएगा और कमांड चलता रहेगा. |
|
–-only connectorId:platform |
सिर्फ़ एक प्लैटफ़ॉर्म और एक कनेक्टर के लिए SDK टूल जनरेट करें. |
–only
फ़्लैग की मदद से, कॉमा लगाकर अलग की गई वैल्यू दी जा सकती हैं.
firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin
Cloud SQL मैनेजमेंट कमांड
Cloud SQL के लिए SQL भूमिकाएं असाइन करना
dataconnect:sql:grant
firebase dataconnect:sql:grant
Data Connect, Cloud SQL पर होस्ट किए गए आपके PostgreSQL इंस्टेंस पर काम करता है. कुछ मामलों में, हो सकता है कि आप अपने Data Connect ऐप्लिकेशन से जनरेट किए गए डेटा को क्वेरी करने या अपडेट करने के लिए, सीधे अपने डेटाबेस को ऐक्सेस करना चाहें. ऐसा करने के लिए, आपको ज़रूरी उपयोगकर्ता या सेवा खाते को इस सेक्शन में बताई गई भूमिकाओं में से कोई एक भूमिका देनी होगी.
असाइन की गई भूमिकाओं के बारे में ज़्यादा जानने के लिए, PostgreSQL उपयोगकर्ता की भूमिकाएं देखें.
भूमिका | एसक्यूएल भूमिका | अनुमतियां | इस्तेमाल | Grantable |
---|---|---|---|---|
reader | 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 |
डेटाबेस पर सभी खास अधिकारों के साथ, पहले से मौजूद सुपरयूज़र की भूमिका. मालिक की अनुमतियों के अलावा, यह स्कीमा बना सकता है, स्कीमा को ड्रॉप कर सकता है, एक्सटेंशन इंस्टॉल कर सकता है, और एडमिन से जुड़े अन्य काम कर सकता है. "firebasesuperuser" के तौर पर लॉग इन करके, CLI में ऐक्सेस किया जाता है. |
एक्सटेंशन इंस्टॉल करने, शुरुआती स्कीमा बनाने, और अन्य उपयोगकर्ताओं को SQL की कोई भी भूमिका देने के लिए ज़रूरी है. अगर किसी ऐसे उपयोगकर्ता को सुपर उपयोगकर्ता के खास अधिकारों की ज़रूरत है जो एडमिन नहीं है, तो माइग्रेशन पूरा नहीं होगा. साथ ही, उपयोगकर्ता को डेटाबेस एडमिन (यानी roles/cloudsql.admin की भूमिका वाला उपयोगकर्ता) से, खास अधिकार वाले SQL कमांड चलाने के लिए कहने के लिए कहा जाएगा. |
यह अनुमति roles/cloudsql.admin वाले उपयोगकर्ताओं को दी जाती है. इसे सीधे तौर पर Firebase सीएलआई से नहीं दिया जा सकता |
Command | जानकारी | |
---|---|---|
firebase dataconnect:sql:grant |
फ़्लैग/पैरामीटर | जानकारी |
-R, --role role |
SQL की वह भूमिका जिसे आपको देना है: मालिक, लेखक या पाठक. | |
-E, --email email_address |
उस उपयोगकर्ता या सेवा खाते का ईमेल पता जिसे भूमिका देनी है. |
ग्लोबल विकल्प
ये ग्लोबल विकल्प सभी निर्देशों पर लागू होते हैं:
--json
, दूसरे टूल से पार्स करने के लिए, CLI आउटपुट को JSON में स्विच करता है.- ज़रूरत के हिसाब से,
--noninteractive
और--interactive
, TTY के अलावा अन्य एनवायरमेंट का अपने-आप पता लगाने की सुविधा को बदल देते हैं.