I'm trying to create an Heroku node task that reads data from Firebase and console.log it.
My node script (located inside the /bin directory) is:
require('dotenv').config({ silent: true });
var firebase = require('firebase');
firebase.initializeApp({
serviceAccount: {
projectId: process.env.fb_projectId,
clientEmail: process.env.fb_clientEmail,
privateKey: process.env.fb_privateKey
},
databaseURL: process.env.fb_databaseURL
})
console.log(process.env.fb_privateKey);
firebase.database().ref('tasks').once('value', function(snapshot) {
console.log(snapshot.val());
process.exit();
})
All env variables are correct, except fb_privateKey
, since it contains \n
characters.
Both my local .env
file and Heroku environment variables contains a key named fb_privateKey
and a value as a string with \n
characters - surrounded with "
.
fb_privateKey="-----BEGIN PRIVATE KEY-----\nMY-PRIVATE-KEY\n-----END PRIVATE KEY-----\n"
When I run the script locally, it logs me the private key with new lines + the tasks that were returned from Firebase. However, when I run it on Heroku, (heroku run myScript
) is logs me private key with \n
characters (as a single line) and fails to read the data from Firebase (probably due to a bad private key). Any ideas?