如何检测firebase管理员初始化何时完成



我正在开发一个api,其中api的响应时间非常重要(在这个答案的上下文中:https://stackoverflow.com/a/60910024/4378475)我有两个数据库初始化,mongodb和firebase,我想准确地计算连接这些数据库需要多少时间

这是我的代码:

const dbURI = `mongodb://xxxxxxxxxxxxxxxx`
let timeCounter = 0;
export function initMongoDb() {
timeCounter = Date.now();
if (mongoose.connection.readyState !== mongoose.STATES.connected
&& mongoose.connection.readyState !== mongoose.STATES.connecting) {
console.log("initializing mongoose");
mongoose.connect(dbURI, {
useNewUrlParser: true, useUnifiedTopology: true
}).catch(e => {
console.log("mongo connection failed for reason: ", e);
})
} else {
console.log("mongoose already connected: ", mongoose.STATES[mongoose.connection.readyState], "took: ", Date.now() - timeCounter, "ms");
}
}
mongoose.connection.on('connected', function () {//connected
console.log("mongooseListner: Mongoose is connected, took: ", Date.now() - timeCounter,"ms");
});

这给了我这样的日志:

> mongooseListner: Mongoose is connected, took: 1310 ms

> mongoose already connected: connected took: 0 ms

我想要同样的东西用于firebase数据库,这是我的代码:


export function initFirebase(){
if (admin.apps.length === 0) {
console.log("initializing firebase database");
admin.initializeApp(functions.config().firebase)
}else{
console.log("firebase is already initialized");
}
}

但是firebase initializeApp方法没有提供(据我所知和我目前所经历的文档(任何承诺或关联事件,所以我无法计算初始化实际需要多少时间

请建议我该怎么做,任何变通方法都会通知

FirebaseApp实例的初始化是同步的。因此,当initializeApp调用返回时,它就完成了。

timeCounter = Date.now();
initFirebase();
console.log("Initializing Firebase took: ", Date.now() - timeCounter,"ms");

然而,请注意,这只是初始化一些局部变量,而Mongoose代码似乎实际上连接到了数据库。Firebase客户端和Firestore后端之间的连接是无连接的,因此没有真正等效于您为Mongoose所做的事情。最接近的方法可能是记录第一次写入或读取操作所需的时间。

相关内容

  • 没有找到相关文章

最新更新