关闭数据库连接(Firebase + Node.js)

时间:2018-10-09 09:42:34

标签: node.js firebase firebase-realtime-database

我目前正在使用 Node.js firebase ,并且目前遇到了一个问题,即在将数据写入数据库后,我的程序不会以终端,有什么办法可以结束这个事情。

我想,也许我需要终止Firebase连接,但是我不知道该怎么做。

这是程序,

module.exports=
{
create_firebase_entry: function ()
  {
    console.log("Firebase Entry")
    return new Promise((resolve, reject) => {
      var secondaryAppConfig = 
      {
	credential: admin.credential.cert(serviceAccount),
	databaseURL: "firebase_databse_url"
      };
      
      if (admin.apps.length===0){secondary = admin.initializeApp(secondaryAppConfig, "secondary");}

      // Retrieve the database.
      var db = secondary.database();
      var ref = db.ref("data_records");
      var usersRef = ref.child("My_Data");
      
      usersRef.set({Data1:"Trail Data"})
    })
  }
}

2 个答案:

答案 0 :(得分:1)

该脚本打开与Firebase实时数据库的连接,然后在该连接上执行异步读取和写入操作。由于脚本无法知道何时完成,因此您必须自己发出信号。

(我知道)最常用的方法是在完成后调用process.exit()。例如

usersRef.set({Data1:"Trail Data"})
  .then(function() {
    process.exit(0);
  });

也可以看到

答案 1 :(得分:0)

我同意弗兰克,但我认为在process.exit(0);块下使用.finally()将提供更多保证。因为当错误发生时,它将永远不会关闭。

usersRef.set({Data1:"Trail Data"})
  .then(result => {
    // ...
  })
  .catch(err => {
    // ...
  })
  .finally(() => {
    process.exit(0)
  })