可能有一种 全局变量 关于 Firebase 云功能?
我的意思是我可以有一个 index.js 就像设置全局变量一样,比如说panicModeVariable
.
我想在做任何事情之前检查我的云函数这个变量,就像在 auth create user 触发器中一样。
const functions = require('firebase-functions');
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
var globalVariable = false;
// Create Account User
exports.createUserAccount = functions.auth.user().onCreate(event => {
if (!globalVariable) {
const uid = event.data.uid
const email = event.data.email
const photoUrl = event.data.photoURL
}
[...]
我尝试了两个虚拟函数
exports.setGlobal = functions.https.onRequest((request, response) => {
globalVariable = true;
response.send("Set " + globalVariable);
});
exports.getGlobal = functions.https.onRequest((request, response) => {
response.send("Read " + globalVariable);
});
但似乎我无法以我想要的方式访问这个变量。
写入函数使用“局部”变量,而读取函数始终使用初始值。
我想这样做,如果可能的话,有一种服务器端变量 直接读取而不需要调用SDK来读取,比如说,一个数据库存储值 (这样就没有函数调用计数)。
最佳答案
您可以使用环境配置变量 https://firebase.google.com/docs/functions/config-env
据我所知,您不能自己在函数中设置它们,它们需要在上传函数之前由 CLI 设置。
你可以做类似 firebase functions:config:set panic.mode=true
的事情
然后在您的 createUserAccount
您可以调用的函数 functions.config().panic.mode
但这对您没有帮助set
变量通过 https
扳机。为此,您需要使用数据库。
关于Firebase 云函数服务器端全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48874686/