Tôi đang cố gắng tạo một tác vụ nút Heroku đọc dữ liệu từ Firebase và console.log.Vấn đề về thoát với khóa firebase privateKey dưới dạng biến cấu hình Heroku
script nút My (nằm trong thư mục/bin) là:
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();
})
Tất cả các biến env là chính xác, ngoại trừ fb_privateKey
, vì nó chứa \n
ký tự.
Cả .env
tập tin và môi trường địa phương Heroku biến của tôi có chứa một khóa có tên fb_privateKey
và một giá trị như là một chuỗi với \n
ký tự - bao quanh với "
.
fb_privateKey="-----BEGIN PRIVATE KEY-----\nMY-PRIVATE-KEY\n-----END PRIVATE KEY-----\n"
Khi tôi chạy tập lệnh cục bộ, nó ghi nhật ký khóa riêng tư với dòng mới + tác vụ được trả về từ Firebase. Tuy nhiên, khi tôi chạy nó trên Heroku, (heroku run myScript
) là bản ghi tôi khóa riêng với \n
ký tự (dưới dạng một dòng) và không đọc dữ liệu từ Firebase (có thể do khóa riêng tư không hợp lệ). Bất kỳ ý tưởng?
Bạn nên đánh dấu câu trả lời của Erem là chính xác. – skwny