我目前正在使用 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"})
})
}
}
答案 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)
})