【问题标题】:I can not start the admin SDK at all我根本无法启动管理 SDK
【发布时间】:2019-05-26 06:20:21
【问题描述】:

启动 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 = 从私钥文件的文本中检索。在控制台中生成

我也尝试使用控制台 sn-p 并给出了这个错误:

语法错误: /data/data/com.termux/files/home/textos-da-ju/scripts/gerarPDF/serviceAccountKey.json: 位置 0 处 JSON 中的意外标记 e

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

【问题讨论】:

    标签: node.js firebase firebase-admin


    【解决方案1】:

    https://firebase.google.com/docs/admin/setup

    注意:FIREBASE_CONFIG 环境变量自动包含在 Cloud Functions 中,用于通过 Firebase CLI 部署的 Firebase 函数。

    如果您想在 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"
    });
    

    【讨论】:

    • 在我的情况下,我正在尝试使用 serviceAccountKey.json,但是你在代码中描绘它的方式似乎这个文件是一个 JSON,但是当我用记事本打开它时,我只看到很多字符而不是带有对象的 JSON。
    • 我发现我的问题是从“错误”的地方下载私钥,或者巴西语言的 firebase 控制台有问题。就我而言,我必须从谷歌云控制台下载密钥。
    • 这里是找到您的管理员 .json 的正确位置:
      Projet 设置 => 服务帐户。在页面底部,您可以找到不同编程语言的每个 admin sdk。
    • 您可以在代码中更改您的 serviceAccountKey.json 的路径,也可以查看 Admin SDK 参考。 firebase.google.com/docs/reference/admin
    猜你喜欢
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多