Gio*_*usa 3 firebase google-cloud-functions firebase-admin
我需要通过Firebase函数访问firebase admin 。我有一个通过HTTP触发器调用的函数,它将创建自定义身份验证令牌。
在Firebase管理文档中,他们说您需要引用JSON
包含所有键(serviceAccount
)的文件
var serviceAccount = require("path/to/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://<databaseName>.firebaseio.com"
})
Run Code Online (Sandbox Code Playgroud)
由于我已经在自己的Firebase函数中,因此我需要上传这些密钥,还是可以任何其他方式访问它?
将我所有的管理密钥上传到Firebase存储只是为了铸造新令牌,这感觉非常不必要。
您可以functions.config().firebase
用来获取Firebase配置实例,然后将其直接传递给initializeApp()
Admin SDK 的方法:
Run Code Online (Sandbox Code Playgroud)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);
当您使用Firebase CLI部署功能时,
functions.config().firebase
会自动使用初始化firebase-admin SDK所需的配置进行填充。因此,您可以将其放入代码中:
Run Code Online (Sandbox Code Playgroud)const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase);
注意,functions.config()
仅在Cloud Functions托管环境中可用,因此在本地模拟功能时不可用。解决方法是,可以通过在functions目录中运行以下命令来导出functions.config()
到.runtimeconfig.json
:
Run Code Online (Sandbox Code Playgroud)firebase functions:config:get > .runtimeconfig.json