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?
I had the same problem today. You need to sanitize the read private key by replacing \\n characters with \n.
admin.initializeApp({   credential: admin.credential.cert({     "projectId": process.env.FIREBASE_PROJECT_ID,     "private_key": process.env.FIREBASE_PRIVATE_KEY.replace(/\\n/g, '\n'),     "clientEmail": process.env.FIREBASE_CLIENT_EMAIL,   }),   databaseURL: process.env.FIREBASE_DATABASE_URL, }); 
                        I solved this by using the .replace(/\n/g, '\n') on the private key and also removing the quotes from the private key value on heroku config vars like it is bellow.
-----BEGIN PRIVATE KEY-----\nMY-PRIVATE-KEY\n-----END PRIVATE KEY-----\n
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With