我根本无法启动管理SDK

时间:2019-05-25 16:58:52

标签: node.js firebase firebase-admin

启动Admin SDK时出现以下错误:

  

UnhandledPromiseRejectionWarning:错误:无法解析私钥:   错误:读取ASN.1值的字节太少

这是我用于启动Admin SDK的代码:

admin.initializeApp({
    credential: admin.credential.cert({
        projectId: 'Extracted from the firebase console',
        clientEmail: 'Project settings -> Service Account -> Firebase service account',
        privateKey: '-----BEGIN PRIVATE KEY-----\n<KEY>\n-----END PRIVATE KEY-----\n'
}),

KEY =从私钥文件的文本中检索。在控制台中生成

我还尝试使用控制台代码段并给出了此错误:

  

SyntaxError:   /data/data/com.termux/files/home/textos-da-ju/scripts/gerarPDF/serviceAccountKey.json:   JSON中的意外令牌e在位置0

有人知道如何正确启动此管理SDK吗? 节点版本:11.14.0

1 个答案:

答案 0 :(得分:0)

请参见https://firebase.google.com/docs/admin/setup

  

注意:FIREBASE_CONFIG环境变量自动包含在通过Firebase CLI部署的Firebase功能的Cloud Functions中。

如果您想在Cloud Functions中将Admin SDK用于Firebase功能,则仅使用以下代码

// Initialize the default app
var admin = require('firebase-admin');
var app = admin.initializeApp();

如果需要使用serviceAccountKey.json,则类似于以下代码。


// import or require serviceAccountKey.json
// See https://stackoverflow.com/questions/7163061/is-there-a-require-for-json-in-node-js .
// Change path to your serviceAccountKey.json
import * as serviceAccountKey from "./serviceAccountKey.json";

// var serviceAccountKey = require("path to your serviceAccountKey.json")

admin.initializeApp({
    credential: admin.credential.cert({
        projectId: serviceAccountKey.project_id,
        clientEmail: serviceAccountKey.client_email,
        privateKey: serviceAccountKey.private_key
    }),
    databaseURL: "Your Database URL",
    projectId: "Your Project Id",
    storageBucket: "Your Storage Bucket"
});