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
चुना जाता है, तो सीएलआई आपको नई सेवा के नाम और जगह के लिए प्रॉम्प्ट करता है. साथ ही, यह भी बताता है कि Cloud SQL for
PostgreSQL इंस्टेंस को लिंक करना है या नया इंस्टेंस बनाना है.
अगर कोई मौजूदा इंस्टेंस लिंक किया गया है, तो सीएलआई काम करने वाली सेटिंग की जांच करता है. जैसे, आईएएम पुष्टि और सार्वजनिक आईपी पते.
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 सेवाओं के लिए संसाधनों को डिप्लॉय करता है. अगर ज़रूरी हो, तो स्कीमा माइग्रेशन किया जाता है.
निर्देश | जानकारी | |
---|---|---|
firebase deploy |
फ़्लैग करें | जानकारी |
–-only dataconnect |
इस प्रोजेक्ट के लिए, Data Connect की सभी सेवाओं के लिए स्कीमा और कनेक्टर डिप्लॉय करें. हालांकि, Firebase के अन्य प्रॉडक्ट के संसाधनों को डिप्लॉय न करें. | |
–-only dataconnect:serviceId |
चुनी गई Data Connect सेवा के लिए स्कीमा और कनेक्टर डिप्लॉय करें. | |
–-only dataconnect:serviceId:connectorId |
किसी खास Data Connect सेवा के लिए, एक कनेक्टर डिप्लॉय करें. | |
–-सिर्फ़ dataconnect:serviceId:स्कीमा |
चुनी गई Data Connect सेवा के लिए स्कीमा डिप्लॉय करें. |
–-only
फ़्लैग की मदद से, कॉमा लगाकर अलग की गई वैल्यू पास की जा सकती हैं, ताकि आप अपने हिसाब से रिसॉर्स का कोई भी सबसेट डिप्लॉय कर सकें.
firebase deploy --only dataconnect:service1:schema,dataconnect:service2
Data Connect की सेवाओं, स्कीमा, और कनेक्टर की सूची बनाना
dataconnect:सेवाएं:सूची
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
फ़्लैग नहीं दिया जाता, तब तक आपसे पूछा जाता है कि आपको इसे जारी रखना है या नहीं.
निर्देश | जानकारी | |
---|---|---|
firebase dataconnect:sql:migrate |
फ़्लैग करें | जानकारी |
serviceId |
बताई गई सेवा के लिए डेटाबेस को माइग्रेट करें. अगर आपके प्रोजेक्ट में सिर्फ़ एक सेवा है, तो serviceId का अनुमान लगाया जाता है. | |
–-बल |
प्रॉम्प्ट अपने-आप स्वीकार करें. |
अन्य --only
फ़्लैग की तरह, एक से ज़्यादा सेवाएं दी जा सकती हैं. इन्हें कॉमा लगाकर अलग किया जा सकता है.
स्कीमा को सख्त या साथ काम करने वाले मोड में माइग्रेट करना
Data Connect स्कीमा माइग्रेशन में, स्कीमा की पुष्टि करने के दो अलग-अलग मोड होते हैं: स्ट्रिक्ट और कंपैटिटबल. सख्त मोड में पुष्टि करने के लिए ज़रूरी है कि ऐप्लिकेशन स्कीमा को डिप्लॉय करने से पहले, डेटाबेस स्कीमा का ऐप्लिकेशन स्कीमा से पूरी तरह मेल खाना चाहिए. कंपैटबिलिटी मोड की पुष्टि करने के लिए ज़रूरी है कि डेटाबेस स्कीमा, ऐप्लिकेशन स्कीमा के साथ काम करता हो. इसका मतलब है कि आपके डेटाबेस में मौजूद उन एलिमेंट में कोई बदलाव नहीं किया जाता जिन्हें आपके ऐप्लिकेशन स्कीमा में इस्तेमाल नहीं किया जाता.
स्कीमा की पुष्टि करने के इन मोड और स्कीमा माइग्रेशन के सबसे सही तरीकों के बारे में, स्कीमा और कनेक्टर मैनेजमेंट गाइड में बताया गया है
पुष्टि करने के मोड को आपकी dataconnect.yaml
फ़ाइल में मौजूद schemaValidation
कुंजी का इस्तेमाल करके तय किया जाता है. अगर schemaValidation
की जानकारी नहीं दी गई है, तो सीएलआई काम करने वाले बदलाव लागू करता है और कोई भी सख्त बदलाव लागू करने से पहले आपको सूचना देता है. कॉन्फ़िगरेशन का रेफ़रंस देखें.
SDK टूल के निर्देश
SDK टूल जनरेट करें
dataconnect:sdk:generate
firebase dataconnect:sdk:generate
यह कमांड, connector.yaml में बताए गए टाइप किए गए SDK टूल जनरेट करता है.
वेब SDK टूल, Android SDK टूल, और iOS SDK टूल के साथ काम करने के लिए गाइड भी देखें.
निर्देश | जानकारी | |
---|---|---|
Firebase dataconnect:sdk:generate |
फ़्लैग करें | जानकारी |
–-watch |
जब भी स्कीमा और कनेक्टर GQL फ़ाइलों में बदलाव किए जाते हैं, तो यह प्रोसेस चलती रहती है और नए SDK जनरेट करती है. अगर कोड जनरेट नहीं हो पाता है, तो गड़बड़ियां स्टैंडर्ड आउटपुट (stdout) में प्रिंट हो जाएंगी. साथ ही, जनरेट किया गया कोड बदला नहीं जाएगा और कमांड चलता रहेगा. |
|
–-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 वाला उपयोगकर्ता) से खास एसक्यूएल कमांड चलाने के लिए कहना होगा. |
roles/cloudsql.admin वाले उपयोगकर्ताओं को दिया जाता है, लेकिन Firebase सीएलआई से इसे सीधे तौर पर नहीं दिया जा सकता |
Command | जानकारी | |
---|---|---|
firebase dataconnect:sql:grant |
फ़्लैग/पैरामीटर | जानकारी |
-R, --role role |
SQL की वह भूमिका जिसे आपको देना है. जैसे: मालिक, लेखक या पाठक. | |
-E, --email email_address |
उस उपयोगकर्ता या सेवा खाते का ईमेल पता जिसे भूमिका देनी है. |
ग्लोबल विकल्प
ये ग्लोबल विकल्प सभी निर्देशों पर लागू होते हैं:
--json
, दूसरे टूल से पार्स करने के लिए, सीएलआई आउटपुट को JSON पर स्विच करता है.- ज़रूरत के हिसाब से,
--noninteractive
और--interactive
, TTY के अलावा अन्य एनवायरमेंट का अपने-आप पता लगाने की सुविधा को बदल देते हैं.