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
start
के साथ इंटरैक्टिव मोड में Data Connect एमुलेटर के Local Emulator Suite वर्शन का इस्तेमाल करें या exec
के साथ स्क्रिप्ट-ड्रिवन, नॉन-इंटरैक्टिव मोड का इस्तेमाल करें.
स्कीमा और कनेक्टर मैनेजमेंट के निर्देश
इस सेक्शन में, स्कीमा और कनेक्टर को मैनेज करने के लिए इस्तेमाल किए जाने वाले कमांड के बारे में सीएलआई रेफ़रंस की जानकारी दी गई है.
इन निर्देशों के इस्तेमाल के उदाहरणों और इनसे जुड़े सुझाए गए तरीकों के बारे में जानने के लिए, स्कीमा और कनेक्टर मैनेजमेंट गाइड देखें.
स्कीमा और कनेक्टर संसाधनों को डिप्लॉय करना
डिप्लॉय करना
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 |
---|---|---|---|---|
पाठक | 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 के अलावा अन्य एनवायरमेंट का अपने-आप पता लगाने की सुविधा को बदल देते हैं.