'Setting up environment variables in node, specifically, GOOGLE_APPLICATION_CREDENTIALS

I have a node application and I'm trying to use the google language api. I want to set the environment variable GOOGLE_APPLICATION_CREDENTIALS to the json file in the same directory (sibling to package.json and app.js).

I had tried process.env.GOOGLE_APPLICATION_CREDENTIALS = "./key.json"; in my app.js file (using express), but it isn't working. I have also tried putting "GOOGLE_APPLICATION_CREDENTIALS":"./key.json" in my package.json and that didn't work as well. It DOES work when I run in the terminal export GOOGLE_APPLICATION_CREDENTIALS="./key".

Here is the error message:

ERROR: Error: Unexpected error while acquiring application default credentials: Could not load the default credentials. Browse to https://developers.google.com/accounts/docs/application-default-credentials for more information.

Any tips are appreciated, thanks!



Solution 1:[1]

After reading and reading about this issue on the internet, the only way to resolve this issue for me was to declare the environment variable for the node execution:

GOOGLE_APPLICATION_CREDENTIALS="./key.json" node index.js

Because I was able to print the token from my server console, but when I was running the node application, the library was unable to retrieve the system environment value, but setting the variable for the execution, it was able to retrieve the value.

Solution 2:[2]

Just to update this thread. Relative paths with GOOGLE_APPLICATION_CREDENTIALS now works fine with dotenv :)

Just store your service-account credentials as a file in your project and reference it relative to your env-file as a path. Then it should work fine :)

Solution 3:[3]

I encountered the same issue. I was able to get it working by doing the following:

export GOOGLE_APPLICATION_CREDENTIALS="//Users/username/projects/projectname/the.json"

Solution 4:[4]

It could be that the environment variable in your OS was not accurately set. For example in Linux you usually have to set GOOGLE_APPLICATION_CREDENTIALS in the terminal where you executed your app.

 export GOOGLE_APPLICATION_CREDENTIALS="[PATH]"

Another option you have is passing the json path by code. It is documented this process using Node.js with the Cloud Storage.

Solution 5:[5]

The issue is covered mostly in the docs here.

the command varies slightly depending on what your OS is: enter image description here enter image description here

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Pang
Solution 2
Solution 3 hanstar17
Solution 4 Michael Nelles
Solution 5 Michael Nelles