【发布时间】:2021-10-02 17:36:17
【问题描述】:
我正在尝试使用开箱即用的身份验证来启动 nextjs / firebase 模板。
我正在对我的私钥进行 base64 编码、解码并加载到 initAuth.js 中的 init 函数中。
我正在将解码后的 json 记录到控制台中,并且私钥属性显然存在。但是我收到了这个值丢失的错误。
initAuth.js
const privateKeyBase64 = process.env.FIREBASE_PRIVATE_KEY;
let buffer, privateKey;
if (privateKeyBase64) {
buffer = Buffer.from(privateKeyBase64, "base64");
privateKey = buffer.toString("utf-8");
console.log(privateKey);
}
init({
// ...
privateKey: privateKey ? JSON.parse(privateKey) : undefined,
});
console.log() 输出如下所示(已删除敏感内容)。
{
"type": "service_account",
"project_id": "",
"private_key_id": "",
"private_key": "-----BEGIN PRIVATE KEY----- STUFF \n-----END PRIVATE KEY-----\n",
"client_email": "",
"client_id": "",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": ""
}
这是我得到的错误:
FirebaseAppError:服务帐户对象必须包含字符串“private_key”属性。 在 FirebaseAppError.FirebaseEr-admin/lib/utils/error.js:44:28) 在 FirebaseAppError.PrefixedFirebaseError [作为构造函数] (/home/node_modules/firebase-admin/lib/utils/error.js:90:28) 在新 ServiceAccount (/home/node_modules/firebase-admin/lib/credential/credential-internal.js:134:19) 处的新 FirebaseAppError (/home/node_modules/firebase-admin/lib/utils/error.js:125:28) ) 在新的 ServiceAccountCredential (/home/node_modules/firebase-admin/lib/credential/credential-internal.js:68:15) aror [作为构造函数] (/home/node_modules/firebase-admin/lib/utils/error.js :44:28) 在 FirebaseAppError.PrefixedFirebaseError [作为构造函数] (/home/node_modules/firebase-admin/lib/utils/error.js:90:28) 在新的 FirebaseAppError (/home/node_modules/firebase-admin/lib/utils/error.js:125:28) 在新的 ServiceAccount (/home/node_modules/firebase-admin/lib/credential/credential-internal.js:134:19) 在新的 ServiceAccountCredential (/home/node_modules/firebase-admin/lib/credential/credential-internal.js:68:15) 在 Object.exports.cert (/home/node_modules/firebase-admin/lib/credential/credential.js:34:54) 在 z (/home/node_modules/next-firebase-auth/build/index.node.js:2:16085) 在 /home/node_modules/next-firebase-auth/build/index.node.js:2:16932 在 Generator.next () 在 asyncGeneratorStep (/home/me/project/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24) { 错误信息:{ 代码:'app/invalid-credential', 消息:'服务帐户对象必须包含字符串“private_key”属性。' }, 代码前缀:'app'
谢谢
【问题讨论】: