【发布时间】:2017-01-22 09:16:42
【问题描述】:
我正在尝试创建一个 Heroku 节点任务,该任务从 Firebase 读取数据并对其进行控制台记录。
我的节点脚本(位于 /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();
})
所有环境变量都是正确的,除了fb_privateKey,因为它包含\n 字符。
我的本地 .env 文件和 Heroku 环境变量都包含一个名为 fb_privateKey 的键和一个带有 \n 字符的字符串形式的值 - 用 " 包围。
fb_privateKey="-----BEGIN PRIVATE KEY-----\nMY-PRIVATE-KEY\n-----END PRIVATE KEY-----\n"
当我在本地运行脚本时,它会记录带有新行的私钥 + 从 Firebase 返回的任务。但是,当我在 Heroku 上运行它时,(heroku run myScript) 会记录我带有 \n 字符的私钥(作为单行),并且无法从 Firebase 读取数据(可能是由于私钥错误)。有什么想法吗?
【问题讨论】:
-
您应该将 Erem 的答案标记为正确。
标签: javascript heroku firebase firebase-realtime-database