我需要通过 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存储只是为了创建新的令牌......
答案 0 :(得分:5)
您可以使用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:
使用Firebase CLI部署功能时,
functions.config().firebase
会自动填充初始化firebase-admin SDK所需的配置。所以你可以把它放在你的代码中:
const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase);
已经注意到functions.config()
仅在云功能托管环境中可用,因此not available when emulating functions locally。作为解决方法,您可以通过在函数目录中运行以下命令将functions.config()
导出到.runtimeconfig.json
:
firebase functions:config:get > .runtimeconfig.json