Firebase 函数 |如果在不同的文件中使用,导入会被调用两次吗?
Firebase Functions | Does imports gets called twice if used in different files?
metrics.js
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.nightlyReport = functions.https.onRequest((request, response) => {
// ...
});
index.js
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.metrics = require('./metrics');
exports.usageStats = functions.https.onRequest((request, response) => {
// ...
});
我正在 index.js 和 metrics.js 上导入 firebase admin。如果我要从 metrics.js 调用一个函数,firebase admin 会被导入两次吗?
没有。默认情况下,requires 和 imports 对进程 space 是全局的,不会重复加载和解析代码的工作。如果遇到第二个实例,它将简单地 return 与第一次生成的相同引用。
此行为与 Cloud Functions 无关。这就是在任何环境中使用 nodejs 的方式。
另请参阅:
metrics.js
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.nightlyReport = functions.https.onRequest((request, response) => {
// ...
});
index.js
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.metrics = require('./metrics');
exports.usageStats = functions.https.onRequest((request, response) => {
// ...
});
我正在 index.js 和 metrics.js 上导入 firebase admin。如果我要从 metrics.js 调用一个函数,firebase admin 会被导入两次吗?
没有。默认情况下,requires 和 imports 对进程 space 是全局的,不会重复加载和解析代码的工作。如果遇到第二个实例,它将简单地 return 与第一次生成的相同引用。
此行为与 Cloud Functions 无关。这就是在任何环境中使用 nodejs 的方式。
另请参阅: