【问题标题】:How to use firebase admin SDK in local Node.js scripts?如何在本地 Node.js 脚本中使用 firebase admin SDK?
【发布时间】:2021-03-04 16:40:50
【问题描述】:

我正在尝试在本地 node.js 脚本文件(firebase-functions 之外)中使用 firebase admin sdk 来执行一些身份验证和 firestore 操作。

但我收到此错误:

{"severity":"WARNING","message":"Warning, FIREBASE_CONFIG and GCLOUD_PROJECT environment variables are missing. Initializing firebase-admin will fail"}

Error: Failed to determine project ID: Error while making request: getaddrinfo ENOTFOUND metadata.google.internal. Error code: ENOTFOUND

Admin SDK 初始化:

const admin = await import('firebase-admin');
const serviceKey = require('path/to/serviceKey.json');
admin.initializeApp({
    credential: admin.credential.cert(serviceKey),
    databaseURL: 'https://{project}.firebaseio.com',
});

我发现的关于这个错误的所有问题都是关于在本地运行 firebase-functions,但我并没有尝试使用 firebase-functions,我只是尝试在本地使用 admin.auth 和 admin.firestore。

我错过了什么吗?

【问题讨论】:

    标签: firebase google-cloud-firestore firebase-authentication google-cloud-functions firebase-admin


    【解决方案1】:

    它适用于基于此documentation 的以下代码:

    const admin = require('firebase-admin');
    const serviceKey = require('./path/to/serviceKey.json');
    admin.initializeApp({
        credential: admin.credential.cert(serviceKey),
        databaseURL: 'https://{project}.firebaseio.com'
    });
    

    我也看到了这个question,从当前的 Firebase 项目创建新的 Google Cloud 项目并将 Firebase 项目计划升级到 Blaze 计划解决了这个问题。

    【讨论】:

    • 感谢约翰的回答。但是那个代码和我写的代码完全一样。另外,我已经在进行大火计划了。
    • 您能否展示整个代码或我们如何重现您的问题?
    • await importrequire 一样吗?如果我使用您的await import,我会收到错误消息,这似乎取决于您的应用程序的功能。一旦您使用可重现的代码更新您的问题,我将更新我的答案。
    猜你喜欢
    • 2019-06-14
    • 2019-06-11
    • 2018-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 2019-10-23
    • 1970-01-01
    相关资源
    最近更新 更多