如何在本地 Node.js 脚本中使用 firebase admin SDK?

问题描述

我正在尝试在本地 node.js 脚本文件(firebase 函数之外)中使用 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。

在这里遗漏了什么吗?

解决方法

它适用于基于此 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 Plan 解决了这个问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...