是否有可能通过内部功能访问 firebase admin?

Any possibility to access firebase admin through functions internally?

我需要通过 Firebase 函数 访问 firebase 管理。我有一个通过 HTTP 触发器调用的函数,并将创建自定义身份验证令牌。

Firebase admin documentation 中,他们说您需要参考包含所有密钥的 JSON 文件 (serviceAccount)

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

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://<databaseName>.firebaseio.com"
})

由于我已经在我自己的 Firebase 函数中,我是否需要上传这些密钥或者我可以通过任何其他方式访问它吗?

感觉没有必要将我所有的管理密钥上传到 Firebase 存储只是为了铸造新的令牌...

您可以使用 functions.config().firebase 获取 Firebase 配置实例,然后将其直接传递给 Admin SDK 的 initializeApp() 方法:

var admin = require("firebase-admin");
var functions = require("firebase-functions");

// Pass the Firebase config directly to initializeApp() to auto-configure
// the Admin Node.js SDK.
admin.initializeApp(functions.config().firebase);

来自use environment configuration to initialize a module documentation:

When you deploy functions using the Firebase CLI, functions.config().firebase is auto-populated with configuration needed to initialize the firebase-admin SDK.

So you can put this in your code:

const functions = require('firebase-functions');   
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

已注意到 functions.config() 仅在 Cloud Functions 托管环境中可用,因此 。作为解决方法,您可以通过 运行 函数目录中的以下命令将 functions.config() 导出到 .runtimeconfig.json

firebase functions:config:get > .runtimeconfig.json