我正在尝试创建一个Heroku节点任务,从Firebase和console.log中读取数据.
我的节点脚本(位于/ bin目录中)是:
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();
})
Run Code Online (Sandbox Code Playgroud)
除了之外fb_privateKey,所有env变量都是正确的,因为它包含\n字符.
我的本地.env文件和Heroku环境变量都包含一个名为key的键fb_privateKey,一个值作为带有\n字符的字符串- 用".包围.
fb_privateKey="-----BEGIN PRIVATE KEY-----\nMY-PRIVATE-KEY\n-----END PRIVATE KEY-----\n"
Run Code Online (Sandbox Code Playgroud)
当我在本地运行脚本时,它会使用新行+从Firebase返回的任务向我记录私钥.但是,当我在Heroku上运行它时,(heroku run myScript)会记录带有\n字符的私钥(作为单行),并且无法从Firebase读取数据(可能是由于一个错误的私钥).有任何想法吗?