gpt4 book ai didi

javascript - 使用 firebase privateKey 作为 Heroku 配置变量来逃避问题

转载 作者:行者123 更新时间:2023-12-03 00:17:45 26 4
gpt4 key购买 nike

我正在尝试创建一个 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();
})

所有环境变量都是正确的,除了 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(可能是由于私钥错误)。有什么想法吗?

最佳答案

我今天也遇到了同样的问题。您需要通过用 \n 替换 \\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,
});

关于javascript - 使用 firebase privateKey 作为 Heroku 配置变量来逃避问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39492587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com