मुझे gcloud और firebase के दखल देने में समस्या आ रही है। मेरे पास एक प्रोजेक्ट है जिसके लिए gcloud auth की आवश्यकता है — हालांकि मैंने अपने gcloud प्रोजेक्ट से अलग एक नया फायरबेस प्रोजेक्ट शुरू किया है। मेरा फायरबेस प्रोजेक्ट मेरे फायरबेस प्रमाणीकरण का उपयोग करना चाहिए - इसके बजाय मुझे निम्न त्रुटि मिल रही है:

Error: Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.
>      at GoogleAuth.getApplicationDefaultAsync (/Users/project/functions/node_modules/google-auth-library/build/src/auth/googleauth.js:160:19)
>      at processTicksAndRejections (internal/process/task_queues.js:97:5)
>      at async GoogleAuth.getClient (/Users/project/functions/node_modules/google-auth-library/build/src/auth/googleauth.js:502:17)
>      at async GrpcClient._getCredentials (/Users/project/functions/node_modules/google-gax/build/src/grpc.js:92:24)
>      at async GrpcClient.createStub (/Users/project/functions/node_modules/google-gax/build/src/grpc.js:213:23)

अगर मैं gcloud auth login के माध्यम से अपने खाते में लॉग इन करता हूं तो GOOGLE_APPLICATION_CREDENTIALS को .bash_project में बदल देता हूं — मुझे ऊपर त्रुटि नहीं मिलती है। मुझे निम्नलिखित चेतावनी मिलती है:

Your GOOGLE_APPLICATION_CREDENTIALS environment variable points to /Users/.config/gcloud/legacy_credentials/xxx/xxx.json. Non-emulated services will access production using these credentials. Be careful!

मेरी समझ से फायरबेस को आपको gcloud सेटअप करने की आवश्यकता नहीं है और firebase login पर दिए गए क्रेडेंशियल्स का उपयोग करना चाहिए, मुझे यकीन नहीं है कि इन दोनों को अलग कैसे रखा जाए। हर बार जब मुझे प्रोजेक्ट स्विच करने की आवश्यकता होती है और मुझे प्राप्त होने वाली चेतावनी प्राप्त करने की आवश्यकता नहीं होती है, तो मैं GOOGLE_APPLICATION_CREDENTIALS को नहीं बदलना पसंद करूंगा।

0
Jamie 3 अप्रैल 2020, 02:43

1 उत्तर

सबसे बढ़िया उत्तर

मुझे नहीं लगता कि आप इसे किसी तरह ठीक कर सकते हैं। फिर भी, मैं आपके परिदृश्य के लिए चार अलग-अलग वर्कअराउंड के बारे में सोचने में सक्षम हूं, लेकिन मुझे यकीन नहीं है कि वे आपकी आवश्यकताओं के अनुरूप होंगे। वे कितने सुविधाजनक के अनुसार क्रमबद्ध होते हैं:

  • अन्य प्रोजेक्ट पर दो खातों में से कोई भी विशेषाधिकार दें और केवल उस खाते का उपयोग करें। यह काम करेगा क्योंकि आपको केवल एक ही खाते की आवश्यकता होगी और आपको पर्यावरण चर बदलना होगा।
  • किसी एक प्रोजेक्ट में GOOGLE_APPLICATION_CREDENTIALS के बजाय किसी अन्य परिवेश चर से क्रेडेंशियल पुनर्प्राप्त करें। मुझे यकीन नहीं है कि यह आप पर फिट बैठता है क्योंकि मुझे नहीं पता कि आप इसका उपयोग कहां कर रहे हैं, लेकिन यह परिदृश्य के आधार पर आपके अनुरूप हो सकता है।
  • एक साधारण स्क्रिप्ट बनाएं जो पर्यावरण चर के मान को बदल दे और प्रोजेक्ट बदलते समय इसे चलाए। यह आदर्श नहीं है और जिसे आप टालना चाहते हैं, लेकिन मान को मैन्युअल रूप से बदलने से आसान होगा।
  • अपने कंप्यूटर पर दो अलग-अलग उपयोगकर्ताओं का उपयोग करें, जिनमें से प्रत्येक के पास एक अलग क्रेडेंशियल पर्यावरण चर में संग्रहीत है। यह जटिल नहीं है, लेकिन आपको एक परियोजना या किसी अन्य का उपयोग करते समय उपयोगकर्ताओं को बदलना होगा, जिसका तात्पर्य पिछले प्रस्ताव के समान नकारात्मक पहलुओं से है।
0
Ajordat 3 अप्रैल 2020, 10:18