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.jsmetrics.js 上导入 firebase admin。如果我要从 metrics.js 调用一个函数,firebase admin 会被导入两次吗?

没有。默认情况下,requires 和 imports 对进程 space 是全局的,不会重复加载和解析代码的工作。如果遇到第二个实例,它将简单地 return 与第一次生成的相同引用。

此行为与 Cloud Functions 无关。这就是在任何环境中使用 nodejs 的方式。

另请参阅: