从节点使用Firebase实时数据库

时间:2018-05-07 20:45:24

标签: node.js firebase firebase-realtime-database google-cloud-functions firebase-admin

无论何时我使用Admin SDK从Node运行Firebase实时数据库代码,该过程都会挂起。例如,我可能有一个节点应用程序deactivate.js

const admin = require("firebase-admin");
// initialize app code...

admin.database().ref(`users/${userId}/active`).set(false)

我使用node deactivate.js。用户将被设置为不活动状态,这样做很好。但是节点进程只会挂起。我必须按 ctrl - c 才能返回提示。

我是否应该使用Firebase关闭连接或在Node应用程序中执行其他操作?使用Firebase函数,我必须返回从上面调用生成的promise。那么,Firebase函数是否会自动处理关闭我现在需要手动处理的内容?

1 个答案:

答案 0 :(得分:0)

您处理云功能的方式与处理独立节点进程完全不同。使用Admin SDK在必须完成的独立节点进程中访问实时数据库时,请执行以下操作,以确保在所有工作完成后退出该进程:

admin.database().ref(`users/${userId}/active`).set(false)
.then(() => {
    process.exit(0)
})
.catch((err) => {
    console.error(err)
    process.exit(1)
})