簡體   English   中英

如何查看Firebase數據庫的連接或斷開?

[英]How to view connection or disconnection to Firebase database?

我有一個 firebase 數據庫,我終於成功地構建了一個 class,其中包含set, get, delete屬性。

但是我想知道如何在discord.js等bot應用程序的discord.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 database\n [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中找到正確的方法

首先,我建議不要將設置代碼放在構造函數中。 構造函數應該用於設置 class 實例並且沒有任何副作用。

將您當前的大部分過程放在登錄名 function 中,或者您喜歡的任何名稱。

如果你想為你的 class 設置事件,讓 class 擴展節點的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 database\n [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}`);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM