डेटा कनेक्ट के लिए, Firebase सीएलआई कमांड का रेफ़रंस

Firebase CLI एक ऐसा टूल है जिसकी मदद से, कमांड लाइन से Firebase के प्रॉडक्ट और सेवाओं को मैनेज और कॉन्फ़िगर किया जा सकता है.

सीएलआई में ऐसे कमांड होते हैं जिनका इस्तेमाल कई तरह के Data Connect टास्क पूरे करने के लिए किया जा सकता है. जैसे, नया Data Connect प्रोजेक्ट बनाना, उससे जुड़ी लोकल वर्किंग डायरेक्ट्री शुरू करना, Data Connect एम्युलेटर सेट अप करना, Data Connect संसाधन लिस्ट करना, क्लाइंट एसडीके जनरेट करना वगैरह.

सेटअप करने के निर्देश

Data Connect को Firebase प्रोजेक्ट में जोड़ना

firebase init

firebase init का इस्तेमाल करके, नया लोकल प्रोजेक्ट कॉन्फ़िगरेशन सेट अप करें. इस वर्कफ़्लो से, आपकी डायरेक्ट्री में Firebase कॉन्फ़िगरेशन फ़ाइलें बनाई या अपडेट की जाती हैं.

firebase init

firebase init फ़्लो में, आपको सेवा और डेटाबेस सेट अप करने के बारे में बताया जाता है. साथ ही, इसमें firebase init एम्युलेटर इंस्टॉल करने और जनरेट किए गए SDK टूल कॉन्फ़िगर करने के बारे में भी बताया जाता है. हालांकि, ऐसा करना ज़रूरी नहीं है.Data Connect

सेवा और डेटाबेस का सेटअप

अगर आपने प्रॉडक्ट सेटअप के लिए dataconnect चुना है, तो सीएलआई आपसे सेवा का नया नाम और जगह के बारे में पूछेगा. साथ ही, यह भी पूछेगा कि आपको Cloud SQL for PostgreSQL के मौजूदा इंस्टेंस को लिंक करना है या नया इंस्टेंस बनाना है.

अगर कोई मौजूदा इंस्टेंस लिंक किया गया है, तो सीएलआई, IAM की पुष्टि करने और सार्वजनिक आईपी पतों जैसी काम करने वाली सेटिंग की जांच करता है.

Local Emulator Suite सेटअप

सीएलआई फ़्लो में, Data Connect एम्युलेटर के साथ-साथ अन्य एम्युलेटर सेट अप करने का विकल्प मिलता है.

Data Connect एम्युलेटर कमांड

Data Connect एम्युलेटर शुरू करें

emulators:start/exec

firebase emulators:start/exec

start या स्क्रिप्ट पर आधारित, नॉन-इंटरैक्टिव मोड के साथ इंटरैक्टिव मोड में Data Connect एम्युलेटर के Local Emulator Suite वर्शन का इस्तेमाल करें. इसके अलावा, 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

यह कमांड, Data Connect सेवाओं के लिए ऐसे संसाधन डिप्लॉय करती है जिन्हें firebase.json में इंडेक्स किया गया है. अगर ज़रूरी हो, तो स्कीमा माइग्रेशन और कनेक्टर अपडेट किया जाता है.

Command ब्यौरा

firebase deploy

फ़्लैग ब्यौरा

–-only dataconnect

इस प्रोजेक्ट के लिए, सभी Data Connect सेवाओं के लिए स्कीमा और कनेक्टर डिप्लॉय करें. हालांकि, Firebase के अन्य प्रॉडक्ट के संसाधन डिप्लॉय न करें.

–-only dataconnect:serviceId

चुनी गई Data Connect सेवा के लिए स्कीमा और कनेक्टर डिप्लॉय करें.

––only dataconnect:serviceId:connectorId

डेटा कनेक्ट करने की सुविधा के लिए, एक कनेक्टर डिप्लॉय करें.

–-only dataconnect:serviceId:schema

डेटा कनेक्ट करने की चुनी गई सेवा के लिए स्कीमा डिप्लॉय करें.

–-only फ़्लैग की मदद से, कॉमा लगाकर अलग की गई वैल्यू पास की जा सकती हैं. इससे, आपको जिस भी संसाधन के सबसेट को डिप्लॉय करना है उसे डिप्लॉय किया जा सकता है.

firebase deploy --only dataconnect:service1:schema,dataconnect:service2

डेटा कनेक्ट करने वाली सेवाओं, स्कीमा, और कनेक्टर की सूची बनाना

dataconnect:services:list

firebase dataconnect:services:list

इस कमांड से, किसी प्रोजेक्ट पर डिप्लॉय की गई सेवाओं, स्कीमा, और कनेक्टर के बारे में बुनियादी जानकारी मिलती है.

SQL स्कीमा की तुलना करना और उन्हें माइग्रेट करना

firebase deploy कमांड चलाने पर, सीएलआई अपडेट डिप्लॉय करने से पहले, एसक्यूएल स्कीमा की तुलना करता है. dataconnect: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 प्रोजेक्ट सेट अप करने पर, dataconnect:sql:migrate कमांड का काम यह होता है कि वह आपसे ज़रूरी बदलावों के लिए कहे. इसके बाद, बदलावों को लागू करने से पहले, आपसे किसी भी वैकल्पिक बदलाव के लिए कहे. dataconnect.yaml के कॉन्फ़िगरेशन को अपडेट करके, इस व्यवहार में बदलाव किया जा सकता है. इससे, वैकल्पिक बदलावों को हमेशा शामिल या अनदेखा किया जा सकता है. इसके बारे में, सख्त या कंपैटिबल मोड में स्कीमा माइग्रेट करना लेख में बताया गया है

इंटरैक्टिव एनवायरमेंट में, सीएलआई हर माइग्रेशन एसक्यूएल स्टेटमेंट दिखाता है. साथ ही, यह भी दिखाता है कि क्या इससे डेटा मिट जाएगा. इसके अलावा, यह उन बदलावों के बारे में भी पूछता है जिन्हें आपको लागू करना है. --force फ़्लैग पास करने का मतलब है कि आपने सभी प्रॉम्प्ट स्वीकार कर लिए हैं.

बिना इंटरैक्टिव एनवायरमेंट में:

  • --force के बिना, सिर्फ़ ऐसे बदलाव किए जाते हैं जिनसे ओरिजनल इमेज पर कोई असर नहीं पड़ता. अगर डिस्ट्रक्टिव बदलाव किए जाते हैं, तो सीएलआई, बदलाव किए बिना ही बंद हो जाता है.
  • --force के साथ, सभी बदलाव किए जाते हैं. अगर इसमें कोई ऐसा बदलाव शामिल है जिससे डेटा मिट सकता है, तो उसे प्रिंट किया जाता है. साथ ही, आपसे पूछा जाता है कि क्या आपको जारी रखना है. हालांकि, ऐसा तब तक होता है, जब तक --force फ़्लैग नहीं दिया जाता.
Command ब्यौरा

firebase dataconnect:sql:migrate

फ़्लैग ब्यौरा

serviceId

चुनी गई सेवा के लिए डेटाबेस माइग्रेट करें. अगर आपके प्रोजेक्ट में सिर्फ़ एक सेवा है, तो serviceId का अनुमान लगाया जाता है.

–-force

प्रॉम्प्ट अपने-आप स्वीकार करने की सुविधा.

अन्य --only फ़्लैग की तरह, कॉमा लगाकर अलग-अलग सेवाएं दी जा सकती हैं.

स्ट्रिक्ट या कंपैटिबल मोड में स्कीमा माइग्रेट करना

Data Connect स्कीमा माइग्रेशन में, स्कीमा की पुष्टि करने के दो अलग-अलग मोड होते हैं: सटीक और काम करने वाला. स्ट्रिक्ट मोड की पुष्टि करने के लिए, यह ज़रूरी है कि डेटाबेस स्कीमा, ऐप्लिकेशन स्कीमा से पूरी तरह मेल खाए. ऐसा होने पर ही, ऐप्लिकेशन स्कीमा को डिप्लॉय किया जा सकता है. कंपैटिबल मोड की पुष्टि करने के लिए, यह ज़रूरी है कि डेटाबेस स्कीमा, ऐप्लिकेशन स्कीमा के साथ कंपैटिबल हो. इसका मतलब है कि आपके डेटाबेस में मौजूद जिन एलिमेंट का इस्तेमाल ऐप्लिकेशन स्कीमा नहीं करता है उनमें कोई बदलाव नहीं किया जाता.

स्कीमा की पुष्टि करने के इन मोड और स्कीमा माइग्रेट करने के सबसे सही तरीकों के बारे में, स्कीमा और कनेक्टर मैनेज करने की गाइड में बताया गया है

पुष्टि करने का मोड, आपकी dataconnect.yaml फ़ाइल में मौजूद schemaValidation कुंजी का इस्तेमाल करके तय किया जाता है. अगर schemaValidation की वैल्यू नहीं दी गई है, तो सीएलआई, काम करने वाले बदलावों को लागू करता है. साथ ही, ज़रूरी बदलावों को लागू करने से पहले आपको सूचना देता है. कॉन्फ़िगरेशन रेफ़रंस देखें.

कनेक्टर में किए गए बदलावों को मैनेज करना

firebase deploy चलाने पर, सीएलआई लागू होने वाले कनेक्टर को अपडेट करना शुरू कर देता है. सीएलआई, हर कनेक्टर में हुए बदलावों का विश्लेषण करता है. साथ ही, कनेक्टर में हुए ऐसे बदलावों के बारे में आकलन के मैसेज जारी करता है जिनकी वजह से, क्लाइंट कोड के पिछले वर्शन में अनचाहा व्यवहार (मैसेज, चेतावनी वाले लेवल के होते हैं) या गड़बड़ियां (मैसेज, गड़बड़ी वाले लेवल के होते हैं) हो सकती हैं.

असर का आकलन स्थिति
चेतावनी का लेवल (वायर के साथ काम करता है, व्यवहार में बदलाव हो सकता है)
  • क्वेरी से ऐसे फ़ील्ड को हटाना जिसमें शून्य वैल्यू हो सकती है. हालांकि, ऐसा @retired एनोटेशन के बिना किया गया हो.
ब्रेकिंग-लेवल (वायर के साथ काम नहीं करता, क्लाइंट को नुकसान पहुंच सकता है)
  • डिफ़ॉल्ट वैल्यू के बिना, शून्य हो सकने वाले वैरिएबल को शून्य नहीं हो सकने वाले वैरिएबल में बदलना.
  • किसी फ़ील्ड के डेटा टाइप को JSON के साथ काम करने वाले डेटा टाइप में बदलना (जैसे, Int से Float).
  • किसी ऐसे कॉलम को नल वैल्यू स्वीकार करने वाले कॉलम में बदलना जिसमें नल वैल्यू स्वीकार नहीं की जाती.
  • @retired एनोटेशन के बिना, नल वैल्यू वाले किसी वैरिएबल को हटाना.
  • @retired एनोटेशन के बिना, डिफ़ॉल्ट वैल्यू वाले किसी ऐसे वैरिएबल को हटाना जिसकी वैल्यू शून्य नहीं है.
ब्रेकिंग-लेवल (वायर के साथ काम नहीं करता, क्लाइंट के साथ काम नहीं करेगा)
  • @retired एनोटेशन के बिना किसी ऑपरेशन को हटाना.
  • @retired एनोटेशन के बिना, क्वेरी से किसी ऐसे फ़ील्ड को हटाना जिसकी वैल्यू शून्य नहीं है.
  • डिफ़ॉल्ट वैल्यू के बिना, शून्य नहीं है वैरिएबल जोड़ना.
  • किसी फ़ील्ड के डेटा टाइप को ऐसे टाइप में बदलना जो काम नहीं करता (जैसे, String से Int).
  • डिफ़ॉल्ट वैल्यू और @retired एनोटेशन के बिना, नॉन-नल वैरिएबल को हटाया जा रहा है.

इंटरैक्टिव एनवायरमेंट में, सीएलआई हर कनेक्टर के आकलन को दिखाता है. साथ ही, आपको उन बदलावों के लिए प्रॉम्प्ट करता है जिन्हें लागू करना है. --force फ़्लैग पास करने का मतलब है कि आपने सभी आकलन स्वीकार कर लिए हैं.

बिना इंटरैक्टिव वाले एनवायरमेंट में:

  • अगर सिर्फ़ चेतावनी के लेवल पर आकलन (व्यवहार में संभावित बदलाव) होते हैं, तो सभी कनेक्टर डिप्लॉय किए जाएंगे और चेतावनियों को टर्मिनल में लॉग किया जाएगा.
  • अगर कोई भी उल्लंघन होता है, तो कोई कनेक्टर डिप्लॉय नहीं किया जाएगा और टर्मिनल में चेतावनियां लॉग की जाएंगी. --force फ़्लैग का इस्तेमाल करके, इस सेटिंग को बदला जा सकता है.

ऑडिट ऑथराइज़ेशन कोड

Data Connect की मदद से, ऑथराइज़ेशन की रणनीति की ऑडिट की जा सकती है. इसके लिए, Firebase CLI से firebase deploy का इस्तेमाल करके सर्वर पर डिप्लॉय करते समय, कनेक्टर कोड का विश्लेषण किया जाता है. इस ऑडिट का इस्तेमाल करके, अपने कोडबेस की समीक्षा की जा सकती है.

कनेक्टर डिप्लॉय करने पर, सीएलआई आपके कनेक्टर में मौजूद, बदले गए, और नए ऑपरेशन कोड के लिए आकलन दिखाएगा.

बदलाव की गई और नई कार्रवाइयों के लिए, सीएलआई चेतावनियां जारी करता है. साथ ही, नई कार्रवाइयों में कुछ ऐक्सेस लेवल का इस्तेमाल करने पर या उन ऐक्सेस लेवल का इस्तेमाल करने के लिए मौजूदा कार्रवाइयों में बदलाव करने पर, आपसे पुष्टि करने के लिए कहता है.

चेतावनी और प्रॉम्प्ट हमेशा इन मामलों में दिखते हैं:

  • PUBLIC

साथ ही, auth.uid का इस्तेमाल करके फ़िल्टर नहीं जोड़ने पर, आपको इन ऐक्सेस लेवल पर चेतावनियां और प्रॉम्प्ट दिखेंगे:

  • USER
  • USER_ANON
  • USER_EMAIL_VERIFIED

अनुमति के बारे में ज़्यादा जानने के लिए, अनुमति और पुष्टि करने से जुड़ी गाइड देखें.

एसडीके टूल के कमांड

एसडीके जनरेट करना

dataconnect:sdk:generate

firebase dataconnect:sdk:generate

इस कमांड से, connector.yaml में बताए गए टाइप किए गए SDK टूल जनरेट होते हैं.

वेब SDK टूल, Android SDK टूल, और iOS SDK टूल के साथ काम करने से जुड़ी गाइड भी देखें.

Command ब्यौरा

firebase dataconnect:sdk:generate

फ़्लैग ब्यौरा

–-बार देखा गया

यह प्रोसेस को चालू रखता है और जब भी अपने स्कीमा और कनेक्टर की GQL फ़ाइलों में बदलाव सेव किए जाते हैं, तब नए SDK जनरेट करता है.

अगर कोड जनरेट नहीं होता है, तो गड़बड़ियों को stdout पर प्रिंट किया जाएगा. साथ ही, जनरेट किए गए कोड में कोई बदलाव नहीं किया जाएगा और कमांड चलती रहेगी.

–-only connectorId:platform

सिर्फ़ एक प्लैटफ़ॉर्म और एक कनेक्टर के लिए एसडीके जनरेट करें.

–only फ़्लैग की मदद से, कॉमा लगाकर अलग की गई वैल्यू पास की जा सकती हैं.

firebase dataconnect:sdk:generate –-only connector1, connector1:kotlin

Cloud SQL को मैनेज करने की कमांड

Cloud SQL के लिए SQL भूमिकाएं असाइन करना

Data Connect, Cloud SQL पर होस्ट किए गए आपके PostgreSQL इंस्टेंस पर काम करता है. SQL रोल कमांड की मदद से, डेटाबेस टेबल पर अनुमतियां मैनेज की जा सकती हैं.

dataconnect:sql:setup

firebase dataconnect:sql:setup

यह कमांड, आपके डेटाबेस में मौजूद टेबल के लिए शुरुआती और ग्लोबल अनुमतियां कॉन्फ़िगर करती है.

डिफ़ॉल्ट डेटाबेस प्रोविज़निंग और मैनेजमेंट फ़्लो में यह माना जाता है कि आपका प्रोजेक्ट, नए (ग्रीनफ़ील्ड) डेटाबेस का इस्तेमाल करता है. साथ ही, firebase deploy को शुरू करने पर, firebase deploy डेटाबेस स्कीमा में किए जाने वाले बदलावों को दिखाएगा. इसके अलावा, आपके अनुमति देने के बाद किसी भी माइग्रेशन को पूरा करेगा.Data Connect अगर आपको यह तरीका पसंद है, तो dataconnect:sql:setup आपको अनुमतियां देने के लिए कहता है. इनमें superuser स्कीमा का मालिकाना हक शामिल है.

मौजूदा (ब्राउनफ़ील्ड) डेटाबेस के लिए, आपके पास स्कीमा माइग्रेट करने का अपना वर्कफ़्लो हो सकता है. साथ ही, आपको स्कीमा का मालिकाना हक खुद के पास रखना हो सकता है. अगर आपको यह तरीका पसंद है, तो dataconnect:sql:setup प्रॉम्प्ट में अस्वीकार करें पर क्लिक करें. इस प्रॉम्प्ट में पूछा जाता है कि क्या Data Connect को आपके लिए एसक्यूएल माइग्रेशन को मैनेज करना चाहिए. अनुरोध अस्वीकार करने पर, Data Connect को सिर्फ़ आपकी डेटाबेस टेबल का read और write ऐक्सेस मिलेगा. हालांकि, स्कीमा का मालिकाना हक और माइग्रेशन की ज़िम्मेदारी आपकी ही रहेगी.

ज़्यादा चर्चा और इस्तेमाल के उदाहरणों के लिए, सेवाएं और डेटाबेस मैनेज करना लेख पढ़ें.

dataconnect:sql:grant

firebase dataconnect:sql:grant

कुछ मामलों में, आपको अपने डेटाबेस को सीधे तौर पर ऐक्सेस करने की ज़रूरत पड़ सकती है. ऐसा 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 डेटाबेस पर पूरे अधिकारों के साथ सुपरयूज़र की भूमिका पहले से मौजूद होती है.

इसके पास मालिक की अनुमतियों के साथ-साथ, स्कीमा बनाने, स्कीमा हटाने, एक्सटेंशन इंस्टॉल करने, और एडमिन से जुड़े अन्य काम करने की अनुमति होती है.

"firebasesuperuser" के तौर पर लॉग इन करके, CLI में ऐक्सेस किया जाता है.
एक्सटेंशन इंस्टॉल करने, शुरुआती स्कीमा बनाने, और अन्य उपयोगकर्ताओं को SQL की कोई भी भूमिका देने के लिए ज़रूरी है.

अगर एडमिन नहीं है, लेकिन उसे सुपरयूज़र के खास अधिकारों की ज़रूरत है, तो माइग्रेशन पूरा नहीं होगा. साथ ही, उपयोगकर्ता को डेटाबेस एडमिन (यानी कि roles/cloudsql.admin की भूमिका वाला उपयोगकर्ता) से, खास अधिकारों वाली एसक्यूएल कमांड चलाने के लिए कहने का अनुरोध किया जाएगा.
यह अनुमति, roles/cloudsql.admin का इस्तेमाल करने वाले उपयोगकर्ताओं को मिलती है. इसे Firebase सीएलआई से सीधे तौर पर नहीं दिया जा सकता
Command ब्यौरा

firebase dataconnect:sql:grant

फ़्लैग/पैरामीटर ब्यौरा

-R, --role role

SQL की भूमिका, इनमें से कोई एक: मालिक, लेखक या रीडर.

-E, --email email_address

उस उपयोगकर्ता या सेवा खाते का ईमेल पता जिसे भूमिका असाइन करनी है.

ग्लोबल ऑप्शन

ये ग्लोबल विकल्प, सभी निर्देशों पर लागू होते हैं:

  • --json, CLI आउटपुट को JSON में बदलता है, ताकि अन्य टूल उसे पार्स कर सकें.
  • --noninteractive और --interactive का इस्तेमाल करके, ज़रूरत के मुताबिक नॉन-टीटीवाय एनवायरमेंट का अपने-आप पता लगने की सुविधा को बदलें.