【问题标题】:Service account object must contain a string "private_key" property. (property is present)服务帐户对象必须包含字符串“private_key”属性。 (财产存在)
【发布时间】: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'

谢谢

【问题讨论】:

    标签: reactjs firebase next.js


    【解决方案1】:

    我需要提供 PEM json 的 privateKey 属性,而不是整个 json 对象。

    【讨论】:

      猜你喜欢
      • 2018-12-28
      • 2018-01-03
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 2019-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多