如何查看与Firebase数据库的连接或断开?



我有一个firebase数据库,我终于设法建立一个类与set, get, delete属性包括。

但我想知道如何在bot应用程序(如discord.js)的node.js工作环境中包含数据库连接或未使用console.log连接的文本

class fireBase {
constructor(client) {
try {
console.info(cyan('Firebase: database is now connected...'))
if(!firebaseConfig || !firebaseConfig.credential || !firebaseConfig.databaseURL){
throw ('config data must be added to connect to the databasen [credential], [databaseURL] in config.json')
}
this.client = client;
this.app  = initializeApp({ credential: cert(firebaseConfig.credential), databaseURL: firebaseConfig.databaseURL });
this.db  = getFirestore(this.app);
console.info(green('Firebase: database connected successfully'))
} catch (err) {
throw new Error(red(err)).message
}
}

在node.js中找到正确的方法

首先,我建议不要将设置代码放在构造函数中。构造函数应该用来设置类实例,并且不能有任何副作用。

将当前过程的大部分放在一个login函数中,或者你喜欢怎么称呼它

如果您想为您的类设置事件,让类扩展节点的EventEmitter:

最后,您可以使用EventEmitter.emit(EventName, EventData)发出自定义事件,并使用EventEmitter.on(EventName)接收它们。

// import EventEmitter from "node:events"
class FireBase extends EventEmitter {
constructor(client) {
this.client = client;
}
login() {
try {
if(!firebaseConfig || !firebaseConfig.credential || !firebaseConfig.databaseURL){
throw ('config data must be added to connect to the databasen [credential], [databaseURL] in config.json')
}
this.app  = initializeApp({ credential: cert(firebaseConfig.credential), databaseURL: firebaseConfig.databaseURL });
this.db  = getFirestore(this.app);

// Emit Event
this.emit("login");
} catch (err) {
this.emit("error", err);
throw new Error(red(err)).message
}
}
}
const fb = new Firebase(client);
fb.login();
// Receive Event
fb.on("login", () => {
console.log('Logged in!');
});
fb.on("error", err => {
console.error(`An error occured: ${err}`);
});

最新更新