Gcloud auth вмешивается в учетные данные Firebase - PullRequest
0 голосов
/ 03 апреля 2020

У меня проблема с вмешательством gcloud и firebase. У меня есть проект, который требует gcloud auth - однако я запустил новый проект Firebase отдельно от моего проекта gcloud. Мой проект Firebase должен использовать мою аутентификацию Firebase - вместо этого я получаю следующую ошибку:

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!

Насколько я понимаю, firebase не требует, чтобы вы настраивали gcloud, и должен использовать учетные данные, предоставленные на firebase login, я не уверен, как сохранить эти два отдельных. Я бы предпочел не менять GOOGLE_APPLICATION_CREDENTIALS каждый раз, когда мне нужно переключать проекты, и не получать предупреждение, которое я получал.

1 Ответ

0 голосов
/ 03 апреля 2020

Не думаю, что вы можете как-то это исправить. Тем не менее, я смог придумать четыре различных обходных пути для вашего сценария, но я не уверен, что они будут соответствовать вашим потребностям. Они сортируются по тому, как удобно они являются:

  • Дайте любой из двух привилегий учетных записей в другом проекте и используйте только эту учетную запись. Это будет работать, поскольку вам потребуется только одна учетная запись и вам придется изменить переменную среды.
  • В одном из проектов получите учетные данные из другой переменной среды вместо GOOGLE_APPLICATION_CREDENTIALS. Я не уверен, подходит ли вам это, потому что я не знаю, где вы его используете, но это может подойти вам в зависимости от сценария.
  • Создайте простой скрипт, который просто меняет значение переменной среды и запустить его при смене проектов. Это не идеально и то, что вы хотите избежать, но было бы проще, чем вручную изменять значение.
  • Используйте на компьютере двух разных пользователей, каждый из которых будет иметь разные учетные данные, хранящиеся в переменной среды. Это не сложно, но вам придется менять пользователей при использовании того или иного проекта, что подразумевает те же негативные аспекты предыдущего предложения.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...